例如,我有一个4x6矩阵A:
A =
0 0 0 0 4 3
0 2 1 0 0 0
0 5 0 8 7 0
8 9 10 3 0 2
Run Code Online (Sandbox Code Playgroud)
我想找到A行中的最低位置,其中为每列找到非零元素.它应该是这样的:
column 1 => row 4
column 2 => row 2
column 3 => row 2
column 4 => row 3
column 5 => row 1
column 6 => row 1
Run Code Online (Sandbox Code Playgroud)
结果应该类似于以下向量:
Result = [4, 2, 2, 3, 1, 1]
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何获得这个?
解决一般案例的一种方法 -
[valid,idx] = max(A~=0,[],1)
out = idx.*valid
Run Code Online (Sandbox Code Playgroud)
样品运行 -
A =
0 0 0 0 -4 3
0 2 1 0 0 0
0 5 0 8 7 0
0 9 10 3 1 2
out =
0 2 2 3 1 1
Run Code Online (Sandbox Code Playgroud)
从示例运行中可以看出,对于存在全零(column-1)的情况,我们得到输出zero以指示该列中没有非零.
它还负责负数(第5列).