对于matlab,我一直收到以下错误 "赋值比非单例下标有更多的非单例rhs维度"
为什么呢?我试着查一下,但对我来说根本就没有意义。
prefix = {'Bark', 'Bush', 'Fabric', 'Floor',...
'Flower', 'Food', 'Gravel', 'Hair',...
'Marble', 'Metal', 'Paint'};
for a = 1: 9
for b = 1:11
fn = sprintf('%s.%d.png', prefix{a}, b);
fn(a,b) = fn;
end
end
答案 0 :(得分:1)
fn
最初是1D的字符串,但是您重复使用相同的变量并假设它是某种类型的2D数组,这就是为什么你要这样做的原因。得到那个错误。没有足够的空间在fn
中做你想做的事。我认为你的意思是要有一个额外的输出单元格数组2D,它将存储这些字符串。
在循环开始时分配它并使用它。像这样:
prefix = {'Bark', 'Bush', 'Fabric', 'Floor',...
'Flower', 'Food', 'Gravel', 'Hair',...
'Marble', 'Metal', 'Paint'};
out = cell(9, 11); % Change
for a = 1:9
for b = 1:11
fn = sprintf('%s.%d.png', prefix{a}, b);
out{a,b} = fn; % Change
end
end