Arrays 查找按升序排序的矩阵的列和行索引
我想在Matlab中解决以下任务: 如果我有一个一般矩阵a,即:Arrays 查找按升序排序的矩阵的列和行索引,arrays,matlab,sorting,matrix,Arrays,Matlab,Sorting,Matrix,我想在Matlab中解决以下任务: 如果我有一个一般矩阵a,即: A = [ 1, 10, 8; 2, 2, 4; 3, 4, 50]; 从最小值到最大值的值为: 1: pos. (1,1) 2: pos. (2,1) 2: pos. (2,2) 3: pos. (3,1) 4: pos. (2,3) 4: pos. (3,2) ... 所以这个函数的输出将是两个向量: x = [1,2,2,3,2,3,...]; y = [1,1,2,1,3,1,...]; 对应于矩阵A的最小值的行和列
A = [
1, 10, 8;
2, 2, 4;
3, 4, 50];
从最小值到最大值的值为:
1: pos. (1,1)
2: pos. (2,1)
2: pos. (2,2)
3: pos. (3,1)
4: pos. (2,3)
4: pos. (3,2)
...
所以这个函数的输出将是两个向量:
x = [1,2,2,3,2,3,...];
y = [1,1,2,1,3,1,...];
对应于矩阵A的最小值的行和列索引
提前谢谢 您需要结合:
与所需输出的差异是由输入数据中多次出现相同数字造成的。如果这很重要,请指定应应用的规则。如果出现多个事件,则不应应用任何规则。所以你的答案就是解决方案!非常感谢你
[vals,linpos] = sort(A(:))
[x,y] = ind2sub(size(A),linpos)
vals.' = 1 2 2 3 4 4 8 10 50
x.' = 1 2 2 3 3 2 1 1 3
y,' = 1 1 2 1 2 3 3 2 3