我有一个大小为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的前三列是线性独立的,第五列与前三列线性无关。我们发现
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];发布于 2017-06-19 08:23:02
如果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;https://stackoverflow.com/questions/44620662
复制相似问题