【发布时间】:2016-01-15 13:14:17
【问题描述】:
我有一个二进制矩阵 A
A=[0 0 0 1
0 1 1 0;
0 1 0 1;
0 0 0 1;
0 1 1 1]
我想对矩阵 A 重新排序,以使至少 1 列具有“1”值。于是,矩阵A就来了
%% switch first col and last col in the first row
A=[1 0 0 0
0 1 1 0;
0 1 0 1;
0 0 0 1;
0 1 1 1]
现在,A 满足上述条件。是否可以在 MATLAB 中实现?谢谢大家
第二个例子
A=[1 0 0 1;
0 0 1 1;
0 0 0 1]
那么结果是
A=[1 0 0 1;
0 1 1 0; %% second and fourth col is switched
0 0 0 1]
更新:如果 A 的行正在运行会发生什么。这意味着在 t=0 时,第一行来了,A=[1 0 0 1]。然后下一次,第二排来了。矩阵 A 将是 A=[1 0 0 1; 0 0 1 1]。然后算法将在这里检查,因为第二列。 A 的值为零。执行切换,然后 A 的下一个列出现,依此类推。你能帮我设计这个任务吗?
【问题讨论】:
-
排序只在列中完成?
-
是的。每个列中必须有 1 个值。
-
让我澄清一下。订购允许的操作有哪些
-
我认为它只是切换操作。这意味着在 col 或 row 之间切换以使 A 的每个 col 至少具有 1 个值。
-
你能详细说明一下编辑吗?