【问题标题】:Matlab: Assignment has more non-singleton rhs dimensions than non-singleton subscriptsMatlab:赋值具有比非单例下标更多的非单例右轴维度
【发布时间】:2018-04-11 18:34:04
【问题描述】:

对于matlab,我不断收到以下错误 "赋值的非单例右轴维度比非单例下标多"

为什么?我试着查了一下,但对我来说根本没有意义。

 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

【问题讨论】:

    标签: matlab


    【解决方案1】:

    fn 在您的循环中最初是一个一维字符串,但随后您重用了相同的变量并假设它是某种二维数组,这就是您收到该错误的原因。 fn 没有足够的空间来做你想做的事。我认为您的意思是有一个额外的二维输出单元数组来存储这些字符串。

    在循环开始时分配它并使用它。像这样的:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 2017-01-27
      • 2017-01-26
      相关资源
      最近更新 更多