在MATLAB中通过冒号运算符生成一个矩阵(double),并将其存储在单元格中



从下面的代码中,我想通过for循环从冒号运算符生成一个矩阵,并以结束(20x2双(形式给出起始值和结束值,其中第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;

错误可能是由于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

相关内容

最新更新