我怎么能存储矩阵的列的所有可能的组合吗?
9的观点(30天)
显示旧的评论
接受的答案
何塞•路易斯•
2014年7月25日
我建议你只保存指标,如果你真的需要。当然,你只有一个小矩阵,但所需的内存数量可以在组合问题成为一个问题非常快。
一个= [1 2 3;4 5 6;7 8 9];
idx =烫发(1:尺寸(a, 2));
为2 = idx '
your_mat =(:,(二)
结束
答案(1)
Ben11
2014年7月25日
作为起点,你可以存储的输出函数的烫发是一个单元阵列,k细胞的细胞包含所有可能的排列的k列。例如:
清晰的所有
clc
= (1 2 3 4 5 6;7 8 9);
细胞(P = 1,大小(A, 1));
为k = 1:尺寸(1)
P {k} =烫发((:,k)) ';%注意输出的转置。
结束
disp (“P {1}”)
disp (P {1})
disp (“P {2}”)
disp (P {2})
disp (“P {3}”)
disp (P {3})
这使这个:
P {1}
7 7 4 4 1 1
4 1 7 1 4 7
1 4 1 7 7 4
P {2}
8 8 5 5 2 2
5 2 8 2 5 8
2 5 2 8 8 5
P {3}
9 9 6 6 3 3
6 3 9 3 6 9
3 6 3 9 9 6
然后你可以实现一个循环取每一列的说P{1},得到的可能的组合列P {2}, P{3}等等。这可能是一个内置的函数,但是我不知道,抱歉。我希望会有帮助!