我有这个问题一直困扰着我一段时间,我无法找到答案.
我目前正与一位同事一起研究Matlab代码很长时间.我们每个人都在代码的不同部分工作而不会相互干扰.为了更好地定位自己的代码并遵循程序的流程,我放了几个disp(),以便我知道代码何时到达某一行.
例如:
% code
disp('You have reached line 1000')
% code...
Run Code Online (Sandbox Code Playgroud)
但是,当我或我的同事在disp()命令之上添加/删除/修改代码行时,这可能很麻烦,因此我在disp()中手动输入的行不再准确.
我的问题:有没有办法在程序已达到的代码中打印实际行号?这可能是一个非常天真的问题,但我想知道它是否完全可能.
Matlab中有一个名为linspace的函数,它会在给定范围内分割间隔。例如:
>> x = linspace(-10,5, 10)
x =
-10.0000 -8.3333 -6.6667 -5.0000 -3.3333 -1.6667 0 1.6667 3.3333 5.0000
Run Code Online (Sandbox Code Playgroud)
如何通过手工计算找到x(4)?
我正在尝试使用公式计算MATLAB中的标准偏差
for i=1:n
s=sqrt(sum((h(i)-mean(h))^2)/(n-1));
end
Run Code Online (Sandbox Code Playgroud)
其中n是单个列向量中的行数,但结果与计算不同std(h)。在我的项目中,我无法使用std function
请帮我。
我希望扩展一个struct(bac),其中包含来自另一个结构(BT)的许多字段.这些字段的名称adds作为字符串包含在单元格数组()中.
这就是我现在所拥有的(显然没有做到这一点,解释这篇文章):
for i=1:numel(adds)
eval(genvarname('bac.',adds{i})) = eval(strcat('BT.',adds{i}));
end
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用sprintf,这似乎对我不起作用.我相信你们其中一个人知道该怎么做,因为我觉得它应该很容易.