我有一个大小为4x7
的二进制矩阵A.我想创建一个Matlab函数,确定矩阵的前四列是否线性独立,如果不是置换,找到前四个线性独立的列,其他三列将跟随。
例如:如果前三列和第五列是线性无关的,那么新矩阵将给出第一,第二,第三和第五列,最后三列将是A的第四,第六和第七列
示例:
A = [1 0 0 1 0 0 1 1;0 1 0 1 1 0 0 1;0 0 1 1 1 0 1 0;0 0 0 0 1 1 1 1];
A的前三列是线性独立的,第五列与前三个colomn线性无关。 我们找到了
B = [1 0 0 0 1 0 1 1;0 1 0 1 1 0 0 1;0 0 1 1 1 0 1 0;0 0 0 1 0 1 1 1];
答案 0 :(得分:1)
如果A
为4x7
,您可以在以下网址找到解决方案:
A = randi(1, 4, 7); // replace real A here
p = perms(1:7);
for i = 1:length(p)
newA = A(:,p(i,:));
if(rank(A(:,1:4)) == 4)
break;
end
end
result = newA;