poster
2019-12-10, 20:30
我对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
回答:
对于置换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 我认为这是您真正需要的。您的“应该”不再对称,这是不对的。
更多&回答... (https://stackoverflow.com/questions/2346595)
我有一个二维矩阵,其中包含线之间的各种角度,看起来像
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
回答:
对于置换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 我认为这是您真正需要的。您的“应该”不再对称,这是不对的。
更多&回答... (https://stackoverflow.com/questions/2346595)