Tag: matlab

计时码在matlab中

我用4种不同的方式写下了一个函数,我想要这个函数。 到现在我一直在做这件事情: tic %//function 1 toc tic %//function 2 toc tic %//function 3 toc tic %//function 4 toc 但是现在我想计算每个函数的定时数据(比如说100次),然后计算每个函数花费的平均时间。 我怎么能这样做? 另外,我在某处读到,打印的时间是经过的“挂钟”时间 – 所以在MATLAB程序运行时,它会受到我的电脑正在做的任何事情的影响。 那么有没有更好的方法呢? 我听说有一个MATLAB内置的代码分析器与命令“configuration文件”。 请任何人都可以告诉我可以使用它的方式吗? 我也咨询了这些网站: MATLAB和Profiler中的 时序代码, 以查找代码瓶颈 。 请build议如何做多次循环。 提前致谢。 编辑:2013年9月23日:按照大家的build议,我做到了这一点:我的function定义为一,二,三和四。 function [] = one(x) I = imread('coins.png'); I = double(I); I = imresize(I,[xx]); sig=.8; % scale parameter in Gaussian kernel G=fspecial('gaussian',15,sig); […]

Cellfun与简单的Matlab循环性能

当我刚刚在大学开始使用matlab的时候,如果我看到任何不必要的循环,我的主pipe就会杀了我(他会要求将它交换成kron或任何types的索引操作)。 后来,我试图尽可能地避免MATLAB上的任何循环,寻找最黑暗的matlab编码方式来做黑魔法而不是简单的循环。 有一天,我发现了cellfun ,这使得黑魔法变得相当简单,我可以改变许多使用cell和cellfun组合的循环,但有一天我看到一篇关于cellfun的文章 ,这让我怀疑我的遗传matlab知识是否真实是: 那个matlab循环总是比一个内置的编译函数慢 ,这是我有这么多的信心。 我在我的一个实现中testing了它,事实上for循环会更快 ! 我就是说,OMG,所有这些日子里做晦涩难懂的代码浪费了无用的哈哈哈。 从那天起,我就不再努力去尝试优化matlab代码,通常这取决于每种情况等等。 今天,我看到了这个答案 ,它记住了我尽可能避免matlab循环的努力(我不知道这是否是作者为了避免性能,但无论如何它提醒了所有这些matlab循环性能的东西)。 还有一个问题出现在我脑海里: Cellfun比循环更好吗? 什么时候会是真的?

我如何在MATLAB中编程一个GUI?

我需要在MATLAB中为我的项目创build一个GUI。 我到处寻找如何编程GUI的例子,但我找不到很多。 什么是在MATLAB的GUI编程一些很好的网站或技术?

快速的2维直方图在matlab中

我已经为2个matlabvector写了一个二维直方图algorithm。 不幸的是,我无法弄清楚如何对其进行vector化处理,而且对于我的需求来说,它的速度大概是一个数量级。 这是我有什么: function [ result ] = Hist2D( vec0, vec1 ) %Hist2D takes two vectors, and computes the two dimensional histogram % of those images. It assumes vectors are non-negative, and bins % are the integers. % % OUTPUTS % result – % size(result) = 1 + [max(vec0) max(vec1)] % result(i,j) = number of […]

使用vector作为matrix的索引

我正在写一个MATLAB函数来读出数据到一个n维数组(可变维度大小)。 我需要能够访问matrix中的特定点(例如,写入或读取它),但是我不知道需要指定多less个索引。 目前我有一个current_point向量,我遍历指定每个索引,并指定一个max_points向量指定数组的大小。 所以,如果我想要一个尺寸为1000×15×3, max_points = [1000 15 3]的三维数组,并且current_point从[1, 1, 1] max_points = [1000 15 3] [1, 1, 1]到[1000, 15, 3] max_points = [1000 15 3] [1000, 15, 3] ( [1, 1, 1] – > [1000, 1, 1] [1, 2, 1] – > [1000, 2, 1] [1, 2, 1] – > [1000, 2, 1] – […]

查找numpy数组中相同值序列的长度(运行长度编码)

在一个pylab程序(也可能是一个matlab程序),我有一个代表距离的数字numpy数组: d[t]是在时间t的距离 (和我的数据的时间是len(d)时间单位) 。 我感兴趣的事件是距离低于某个阈值时,我想计算这些事件的持续时间。 很容易得到b = d<threshold的布尔数组,并且问题归结为计算b只包含真值的字的长度序列。 但我不知道如何有效地做到这一点(即使用numpy原语),我走了arrays,并做手动变化检测(即初始化计数器时,从False值为真,增加计数器,只要值为真当值返回到False时,将计数器输出到序列)。 但是这是非常缓慢的。 如何有效地检测numpy数组中的那种序列? 下面是一些说明我的问题的Python代码:第四个点需要很长时间才能出现(如果不是,则增加数组的大小) from pylab import * threshold = 7 print '.' d = 10*rand(10000000) print '.' b = d<threshold print '.' durations=[] for i in xrange(len(b)): if b[i] and (i==0 or not b[i-1]): counter=1 if i>0 and b[i-1] and b[i]: counter+=1 if (b[i-1] and not […]

在MATLAB中声明一个全局variables

有没有办法在MATLAB中声明全局variables? 请不要回应: global xyz; 因为我也可以阅读帮助文件 。 我已经声明了一个全局variablesx,然后做了这样的事情: function[x] = test() global x; test1(); end 函数test1()被定义为: function test1() x = 5; end 当我运行test() ,我的输出是x = [] 。 有没有一种方法,我可以使它输出x=5 ,或任何我定义x是在一个单独的function? 在C中,这将是一个外部variables,我认为使它成为一个全局variables应该完成这个…

计算旋转的2D图像的平移值和旋转angular度

我有两个图像,其中之一是原始图像,第二个是转换的图像。 我必须找出有多less度转换图像旋转使用3×3转换matrix。 另外,我需要find从原点转换多远。 这两个图像都是灰度并保存在matrixvariables中。 他们的大小是相同的[350 500] 。 我发现了这样的几个讲义。 讲义说,我应该使用下面的matrix公式进行轮换: 对于平移matrix,给出公式: 一切都很好。 但是有两个问题: 我无法想象如何使用MATLAB来实现公式。 公式的形状是findx' , y'值,但我已经得到了x , x' , y , y'值。 我需要find旋转angular度(θ)和t x和t y 。 我想知道matrix中x , x' , y , y'的等价性。 我有以下代码: rotationMatrix = [ cos(theta) sin(theta) 0 ; … -sin(theta) cos(theta) 0 ; … 0 0 1]; translationMatrix = [ 1 0 […]

从Java运行MATLAB函数

我在MATLAB中有一个.m文件,我想从Java调用一个解决scheme作为一个string或任何在Java中。 这听起来很简单,但由于某种原因,我不能使它工作。 我试过这个: matlab -nosplash -wait -nodesktop -r myFunction 但我不知道如何parsing答案,因为MATLAB打开它自己的命令行(在Windows中)。 我使用这个,但它不返回任何东西。 Process p = Runtime.getRuntime().exec(commandToRun); BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); 也似乎每次我打电话给MATLAB打开一个单独的窗口,这是一个问题,因为我想运行这么多次。

在MATLAB中调整3Dmatrix(图像)的大小

我有一个三维matrix(MxNxK),并想调整它(M'xN'xK')(如imresize在matlab中)。 我正在使用图像金字塔,但其结果不是很准确,需要一个更好的。 任何解决scheme