【问题标题】:MATLAB - matrix combinationsMATLAB - 矩阵组合
【发布时间】:2011-01-21 17:47:22
【问题描述】:

我对 MATLAB 还很陌生,无法找到有效的问题解决方案。任何帮助将不胜感激!!

我有一个二维矩阵,其中包含线条之间的各种角度,看起来像

            L1  L2 L3 L4 L5 L6
         L1  0  40 90 0  10 0 
         L2  40 0  0  5  40 20 
         L3  90 0  0  45 0  10 
         L4  0  5  45 0  10 15 
         L5  10 40 0  10 0  15 
         L6  0  20 10 15 15 0

请注意,每个对应的列/行都是相同的。我需要找到可以在矩阵中组织线条的所有可能组合。即L1 L2 L3 L4 L5 L6、L1 L2 L3 L4 L6 L5、L1 L2 L3 L5 L6 L4等。我需要为每个组合生成一个矩阵,稍后将与模板值进行比较。

我尝试使用

p = perms(1:6);
tp = angles( p, : );

只为每个组合交换矩阵的行。这很好用,除了当列也需要交换时,每个组合只交换行。

             L1 L2 L3 L4 L5 L6                 L1 L2 L3 L4 L6 L5
         L1  0  40 90 0  10 0              L1  0  40 90 0  0  10 
         L2  40 0  0  5  40 20             L2  40 0  0  5  20 40 
         L3  90 0  0  45 0  10  should be  L3  90 0  0  45 10 0 
         L4  0  5  45 0  10 15             L4  0  5  45 0  15 10
         L6  0  20 10 15 15 0              L6  0  20 10 15 0  15
         L5  10 40 0  10 0  15             L5  10 40 0  10 0  0

【问题讨论】:

    标签: matlab


    【解决方案1】:

    对于排列 num,请使用 tp = angles(p(num,:),p(num,:)) 排列行和列以提供您的示例排列 [1 2 3 4 6 5]

    tp =
    
         0    40    90     0     0    10
        40     0     0     5    20    40
        90     0     0    45    10     0
         0     5    45     0    15    10
         0    20    10    15     0    15
        10    40     0    10    15     0
    

    这是我认为你真正需要的。您的“应该”不再是对称的,这不可能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 2012-04-05
      • 2018-05-31
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多