Tag: matlab

如何在MATLAB匿名函数中执行多个语句?

我想要做这样的事情: >> foo = @() functionCall1() functionCall2() 所以当我说: >> foo() 它会执行functionCall1()然后执行functionCall2() 。 (我觉得我需要像C这样的操作符 ) 编辑: functionCall1和functionCall2不一定是返回值的函数。

停止并继续从debugging器执行可能?

有没有什么办法可以像ctrl + c那样从debugging器中停止执行matlab程序,但是能够继续执行(就像你可以说c#)? 如果没有,是否有更好的方法来解决这个问题,而不是试图在你的matlab代码中抢先设置断点或dbstop语句? 我希望能够中断一个长时间运行的模拟来查看当前状态,然后继续模拟。 我正在使用/正在考虑的两个选项是 dbstop命令(或(条件)断点)在代码中。 缺点是有时我不想停止模拟几个小时,有时候只想几秒钟就停下来(而且事先不一定知道这一点),而且这种方法不适用:如果我每5分钟设置一次中断条件,我就不能让matlab在没有交互的情况下运行数小时。 如果我把条件设定得更高,我必须等待时间太久才能达到目标。 包括每隔几秒钟/分钟保存工作空间的代码,并将工作空间导入第二个matlab实例。 缺点是这是一个巨大的麻烦,也不一定让我恢复与保存工作空间的状态,然后通过代码一些迭代的仿真。 我希望有一个比任何一个更好的解决scheme2.感谢您的任何build议! 编辑 :我想我要做的是写简单的matlab函数,每次迭代检查磁盘上的环境variables或文件,并调用dbstop,如果我在此文件或env设置标志。 这样我就可以通过编辑文件来控制何时(如果需要的话)断点从外部matlab控制。 凌乱,但应该工作。

循环遍历matlab文件夹中的文件

我有一整天的日志文件,我需要parsing和看看在matlab。 日志文件如下所示: LOG_20120509_120002_002.csv (year)(month)(day)_(hour)(minute)(second)_(log part number) 日志每小时增加一次,但是有时秒数是一两秒(每小时),这意味着我需要忽略他们说loadcsv 。 我也有另一个文件: LOG_DATA_20120509_120002.csv 其中包含整个小时的数据(不同的数据)。 总体目标是: loop through each day loop through each hour read in LOG_DATA for whole hour loop through each segment read in LOG for each segment compile a table of all the data 那么我想现在的问题是,如果他们不一样,我该如何忽略一天的分钟? 我怀疑它会循环通过文件夹中的所有文件,在这种情况下,我该怎么做?

如何使黑板文本显得更清晰使用MATLAB?

如果我想让最终的图像更清晰一些,那么我应该放什么样的滤镜呢? 我的意思是只有两个不同的颜色,一个是白板,一个是白板。

用给定的概率生成随机数matlab

我想生成一个给定的概率随机数,但我不知道如何: 我需要1到3之间的数字 num = ceil(rand*3); 但是我需要不同的值来产生不同的概率。 0.5 chance of 1 0.1 chance of 2 0.4 chance of 3 我确定这很简单,但我不知道该怎么做。

如何使用向量化代码在MATLAB中生成两个向量中的所有对?

不止一次,现在我需要在MATLAB中生成所有可能的两个向量对,我使用的是循环,这些循环占用了几行代码, vec1 = 1:4; vec2 = 1:3; i = 0; pairs = zeros([4*3 2]); for val1 = vec1 for val2 = vec2 i = i + 1; pairs(i,1) = val1; pairs(i,2) = val2; end end 生成… 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 4 […]

通过空matrix乘法初始化数组更快的方法? (Matlab的)

我偶然发现了奇怪的方式(在我看来)Matlab正在处理空matrix 。 例如,如果两个空matrix相乘,结果是: zeros(3,0)*zeros(0,3) ans = 0 0 0 0 0 0 0 0 0 现在,这已经让我吃惊了,但是,一个快速的search让我看到了上面的链接,并且解释了为什么会发生这种有些扭曲的逻辑。 但是 ,没有任何东西准备好我的观察。 我问自己,这种types的乘法与仅使用zeros(n)函数有多高效,比如初始化的目的呢? 我用timeit来回答这个问题: f=@() zeros(1000) timeit(f) ans = 0.0033 VS: g=@() zeros(1000,0)*zeros(0,1000) timeit(g) ans = 9.2048e-06 两者的结果都是1000×1000的二级零matrix,但是空matrix乘法一个是〜350倍! (类似的结果发生使用tic和toc和一个循环) 这怎么可能? 是timeit或tic,toc虚张声势还是我find了一个更快的方法来初始化matrix? (这是用matlab 2012a完成的,在win7-64机器上,intel-i5 650 3.2Ghz …) 编辑: 在阅读您的反馈之后,我更仔细地研究了这个特性,并在两台不同的计算机(相同的matlab ver 2012a)上testing了一个代码,用于检查运行时间与matrixn的大小。 这是我得到的: 与以前一样生成这个使用的timeit的代码,但是一个循环与tic和toc看起来是一样的。 所以,对于小尺寸, zeros(n)是可比较的。 然而,在n=400左右,空matrix乘法的性能有所提高。 我用来生成该图的代码是: n=unique(round(logspace(0,4,200))); for k=1:length(n) […]

使用GCC(MinGW)作为MATLAB的MEX编译器

我已经有了一个在MATLAB R2011a上运行的项目。 由于这里有几个.c文件,我需要将GCC设置为该项目的MEX编译器。 但是,我似乎无法find任何解释如何设置它。 我试过了一个名为gnumex的脚本程序 – 但是它失败了(可能是为MATLAB的老版本设置的)。 任何想法如何设置?

有效的实现`im2col`和`col2im`

在处理图像时,MATLAB的im2col和col2im对于MATLAB中的vector化非常重要。 然而他们需要MATLAB的image processing工具箱。 我的问题是,是否有一个有效的(Vectorzied)方法来实现使用MATLAB的function(没有工具箱)? 我需要sliding和distinct模式。 我不需要任何填充。 谢谢。

如何优雅地忽略MATLAB函数的一些返回值?

是否有可能从函数中获得“第n个”返回值,而不必为之前的所有n-1返回值创build虚拟variables? 比方说,我在MATLAB中有以下function: function [a,b,c,d] = func() a = 1; b = 2; c = 3; d = 4; 现在假设,我只对第三个返回值感兴趣。 这可以通过创build一个虚拟variables来完成: [dummy, dummy, variableThatIWillUse, dummy] = func; clear dummy; 但是我觉得这样很丑 。 我认为你可能会做下面的事情之一,但是你不能: [_, _, variableThatIWillUse, _] = func; [, , variableThatIWillUse, ] = func; variableThatIWillUse = func(3); variableThatIWillUse = func()(3); 有没有什么优雅的方法来做到这一点工作? 到目前为止,最好的解决scheme是简单地使用variableThatIWillUse将使用作为一个虚拟variables。 这使我不必创build一个真正的虚拟variables,污染工作空间(或者我需要清除)。 简而言之:解决scheme是使用variableThatIWillUse将使用每个返回值,直到有趣的。 返回值可以简单地忽略: [variableThatIWillUse, […]