在MATLAB中通过冒号运算生成一个双精度矩阵,并存储在单元格中

mnemlml8  于 2023-01-26  发布在  Matlab
关注(0)|答案(1)|浏览(137)

在下面的代码中,我想通过for循环从冒号运算符生成一个矩阵,并在ends(20x2 double)中给出起始值和结束值,其中ends的第1列和第2列分别是起始值和结束值。

for hh=1:length(ends)
xx{:,hh}=ends(hh,1)-1:ends(hh,2)+1;
end

它给了我以下错误信息

Expected one output from a curly brace or dot indexing expression, but there were 0 results.

Error in new_one (line 11) 
xx{:,hh}=ends(hh,1)-1:ends(hh,2)+1;
hpcdzsge

hpcdzsge1#

出现此错误的原因可能是xx{:,hh}=...与不兼容的xx初始化(如xx={})的组合不正确,这会阻止:计算为任何行号。下面的代码应该有效:

% Simulated data
ends=randi(16,[20 2]);
ends=[min(ends,[],2) max(ends,[],2)];

% Create cell array
xx=cell([1 size(ends,1)]);
for hh=1:size(ends,1)
  xx{hh}=ends(hh,1)-1:ends(hh,2)+1;
end

相关问题