Tag: matlab

这个标准化数据的代码是如何工作的?

我有一个机器学习课程提供的standardizefunction没有很好的文档,我仍然是MATLAB新手,所以我只是试图分解function。 对标准化的语法或总体思路的任何解释都会有很大的帮助。 我们使用这个函数来标准化大matrix中提供的一组训练数据。 细分代码片段的大部分内容将对我有很大的帮助。 非常感谢。 function [X, mean_X, std_X] = standardize(varargin) switch nargin case 1 mean_X = mean(varargin{1}); std_X = std(varargin{1}); X = varargin{1} – repmat(mean_X, [size(varargin{1}, 1) 1]); for i = 1:size(X, 2) X(:, i) = X(:, i) / std(X(:, i)); end case 3 mean_X = varargin{2}; std_X = varargin{3}; X = varargin{1} – […]

这是一个Matlab的错误? 你有同样的问题吗?

我的Matlab版本是R2012a 为什么在Matlab 1.1-0.2不等于0.9 !!!!!? 这太可怕了! >> 1.1-0.2 == 0.9 ans = 0

在MATLAB版本7中相当于pdist2

我需要计算matlab中2个matrix之间的欧式距离。 目前我使用bsxfun和计算距离如下(我附上一段代码): for i=1:4754 test_data=fea_test(i,:); d=sqrt(sum(bsxfun(@minus, test_data, fea_train).^2, 2)); end fea_test的大小是4754×1024,fea_train是6800×1024,使用for循环导致执行for花了大约12分钟,我认为这太高了。 有没有办法计算两个matrix之间的欧氏距离更快? 我被告知,通过删除不必要的循环,我可以减less执行时间。 我也知道,pdist2可以帮助减less计算时间,但是因为我使用的是matlab版本7,所以没有pdist2函数。 升级不是一个选项。 任何帮助。 问候, 巴维亚

MATLAB没有足够的input参数

我一直试图运行这个,不知道什么是错的。 我把它保存为test.m. 我点击编辑器和matlab命令窗口中的运行,它表示没有足够的input参数。 我觉得我错过了一些非常明显的东西,但是我不能发现这个问题。 function y = test(A, x) %This function computes the product of matrix A by vector x row-wise % define m number of rows here to feed into for loop [ma,na] = size(A); [mx,nx] = size(x); % use if statement to check for proper dimensions if(na == mx && nx == 1) […]

通过外部应用程序调用一个函数,而无需打开一个新的Matlab实例

有没有办法从外部调用Matlab函数,特别是通过Windows cmd (也包括Linuxterminal,LUA脚本等),而不是每次都打开Matlab的新实例? 例如在cmd : matlab -sd myCurrentDirectory -r "function(parameters)" -nodesktop -nosplash -nojvm 打开一个Matlab的新实例相对较快,并执行我的function。 打开和closures这个简化的matlab提示大约需要2秒钟(没有计算) – 因此4000次执行超过2小时。 我想避免这一点,因为被调用的函数总是位于同一个工作区。 总是可以在同一个实例中完成吗? 我已经做了一些研究,发现了MATLAB COM自动化服务器的可能性,但是对我来说似乎相当复杂,而且我没有看到使它适用于我的情况的基本步骤。 任何build议呢? 我不熟悉c/c++/c#但我正在考虑使用python (但在最坏的情况下)。

bsxfun在matrix乘法中的实现

一如既往地试图从你那里学到更多东西,我希望能够通过下面的代码获得一些帮助。 我需要完成以下内容: 1)我有一个vector: x = [1 2 3 4 5 6 7 8 9 10 11 12] 2)和一个matrix: A =[11 14 1 5 8 18 10 8 19 13 20 16] 我需要能够将x的every值与A each值相乘,这意味着: new_matrix = [1* A 2* A 3* A … 12* A] 这会给我这个size (12*mxn) new_matrix ,假设A (mxn) 。 而在这种情况下(12*4×3) 我怎样才能做到这一点,使用matlab的bsxfun ? 而且,这个方法会比for-loop更快吗? 关于我的for-loop […]

子图是如何工作的,在MATLAB中子图(121)和子图(1,2,1)有什么区别?

我有点不清楚subplot工作原理。 具体来说,MATLAB中的subplot(121)和subplot(1,2,1)什么区别? 我试图search的subplot档案的文件,但我似乎无法find我在找什么。

如何在MATLAB / Octave中获得实数整数溢出?

我正在为MATLAB / Octave中的一些VHDL代码validation工具。 因此我需要产生“真正”溢出的数据types: intmax('int32') + 1 ans = -2147483648 稍后,如果我可以定义一个variables的位宽,这将是有帮助的,但是现在并不那么重要。 当我build立一个类似C的例子,variables增加到小于零时,它会永远旋转: test = int32(2^30); while (test > 0) test = test + int32(1); end 我尝试的另一种方法是一个自定义的“溢出” – 程序,每次在数字被改变后被调用。 这种做法非常缓慢,不切实际,根本不适用于所有情况。 有什么build议么?

在Matlab中启动.exe文件后,以编程方式按Enter键

在Matlab中,我可以启动外部.exe文件,有时popup需要按下Enter键。 例如: system('C:\Program Files (x86)\WinZip\WINZIP32.EXE') 将启动Winzip,然后为了使用它,你需要通过按下回车“立即购买”popup窗口。 现在我的问题不是用winzip,我只是把它作为一个例子(反正我用winrar :)。 在这种情况下,如何以编程方式在Matlab中按下input键? (我用win 7) 一个事件监听器可以用来解决这个问题吗? 编辑:java.awt.Robot类的确可以在浏览器上工作,但是没有任何带有需要按下的确定button的popup窗口的软件。 我不知道为什么它不起作用。 我给了winzip的例子,因为我认为每个人都已经在他们的机器上安装了winzip / winrar。 我所拥有的实际软件是不同的,不相关的问题。

生成并绘制经验联合pdf和CDF

给定一对两个variables(X,Y),如何在vanilla MATLAB(无工具箱)中生成和绘制经验联合PDF和CDF?