Matlab:赋值比非单例下标有更多非单例rhs维度

时间:2018-04-11 18:34:05

标签: matlab

对于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

1 个答案:

答案 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