在矩阵的每一行中查找元素的列位置,并将其存储在矩阵中

时间:2019-04-14 20:23:29

标签: matlab

我有一个n x m矩阵,每行分别有-1s和1s。 我希望找到遍历每一行的-1s和1s的列索引。
输出应该是大小为n x m的矩阵

M = [1 1 -1 1 -1; -1 1 1 -1 1; 1 -1 1 -1 -1];

我尝试了以下运气

inputMatrix=M(1:end,:);

outputMatrix=zeros(size((M)));
for i =1:size(M,1)
temp=zeros(size((M)));
[~,j] = find(M == -1);
outputMatrix=j; 
end

预期结果应该是

outputMatrix = [1 2 4; 2 3 5; 1 3]

1 个答案:

答案 0 :(得分:0)

结果不能是矩阵,如注释中所述。您可以使用单元格数组:

M = [1 1 -1 1 -1;-1 1 1 -1 1 ;1 -1 1 -1 -1];
[ii, jj] = find(M==1);
result = accumarray(ii, jj, [size(M,1) 1], @(x) {sort(x.')});

这给

>> celldisp(result)
result{1} =
     1     2     4
result{2} =
     2     3     5
result{3} =
     1     3