用该列的值替换所有列中的值

时间:2011-03-28 15:05:12

标签: matlab replace

如何将所有列中的所有1替换为该列的编号?我可以逐列完成:

输出(输出(:,3)== 1,3)= 3;
输出(输出(:,4)== 1,4)= 4;
输出(输出(:,5)== 1,5)= 5;
等...

但我觉得这对每一个专栏都是傻瓜。应该有办法一次性完成所有这些吗?

2 个答案:

答案 0 :(得分:4)

您可以使用FIND

[rowIdx,colIdx] = find(output==1);
output(output==1) = colIdx;

答案 1 :(得分:1)

我不太了解你要做的事情,但你可以使用MATLAB 来实现循环。

for i=1:numberOfColumns,
    output(:,i) = i;
end

这有点像你在追求......?

修改

for x=1:numberOfRows,
    for y=1:numberOfColumns,
        if output(x, y) == 1
            output(x, y) == y
        end
    end
end

顺便说一句,我的列/行可能是错误的,因为我不记得MATLAB代表它的基质的方式!