【问题标题】:Matlab - Creating a vector from matricesMatlab - 从矩阵创建向量
【发布时间】:2014-07-27 17:53:07
【问题描述】:

我有一些像下面这样的颜色矩阵,最初只有一个颜色矩阵,而且效果很好。

[66 92 143]/255; %DARKBLUE 
[21 59 99]/255; %BLACK
[0 0 0]; %Pure black

tempPoint.set('mark_color',{[21 59 99]/255});

我尝试将这些颜色矩阵放入向量中。所以我可以像这样在循环中使用它:

farbe=[[21 59 99]/255 [0 0 0] [66 92 143]/255];

 for i=1:length(farbe) 

tempPoint.set('mark_color',{farbe(i)}); 

end

但不幸的是,它不起作用,并给出“颜色值必须是 3 元素数值向量”错误

我试图在这个主题上找到我的问题的解决方案,但无法解决我的问题:

Array of Matrices in MATLAB

如何将这些矩阵放入一个向量中并在循环中使用它的每个元素?

任何帮助将不胜感激。

【问题讨论】:

  • 将它们放入单元矩阵farbe ={[21 59 99]/255, [0 0 0], [66 92 143]/255} 然后用farbe{i} 调用它们,调用它们时注意不要使用} )。

标签: matlab for-loop vector matrix colors


【解决方案1】:

您的问题是:您的新 farbe 的大小为 9。因此在您的循环中,您只使用 1 个输入而不是 3 个输入来调用它。要么更改您的参数,要么更改数据类型。 这里有2个解决方案:
1 解决方案:使用单元格:

%I changed farbe to be a cell array with each element containing 1 colour
farbe={[21 59 99]/255, [0 0 0], [66 92 143]/255};

 for i=1:length(farbe) 
  %Here the call farbe changed (using {} instead of() to get the values)
  tempPoint.set('mark_color',{farbe{i}}); 

end

第二个解决方案:其他循环

farbe=[[21 59 99]/255 [0 0 0] [66 92 143]/255];

 for i=1:length(farbe)/3 

tempPoint.set('mark_color',{farbe(3*i-2:3*i)}); 

end

这里的不同参数是确保您使用正确的索引。您还可以将循环参数更改为i=1:3:7并使用farbe(i:i+2)

另外,作为注释,您不应使用 i 作为参数,因为它也是用于虚数单位的 MATLAB 内部变量。与 j 相同。使用 ii 和 jj 或其他东西。

我也无法测试我的解决方案,因为我没有temp.Point.set 方法。因此,我们将不胜感激。

【讨论】:

    【解决方案2】:

    您可以通过两种方式做到这一点,将farbe 变成这样的矩阵:

    farbe=[[21 ;59 ;99]/255 [0 ;0 ;0] [66; 92 ;143]/255]
    

    然后

    for i=1:length(farbe) 
    
    tempPoint.set('mark_color',{farbe(:,i)}); 
    
    end
    

    或通过以下方式将它们作为一个单元格:

    farbe=[{[21 59 99]/255} {[0 0 0]} {[66 92 143]/255}];
    
    for i=1:length(farbe) 
    
    tempPoint.set('mark_color',{farbe{i}}); 
    
    end
    

    【讨论】:

    • 您的第一个解决方案应该行不通。如果我没记错的话,您的电话farbe(i)仍然只返回一个值。您必须将其更改为 farbe(:,i)才能使用“整体”颜色映射。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    相关资源
    最近更新 更多