hi, I have array a = [5 4 0;3 1 0;5 7 0], how can I replace the value in third column (a(:,3)) with the values in column 1 (a(:,1)) when a(:,1) > a(:,2) . I need obtain [5 3,5] in the third column
3 ビュー (過去 30 日間)
古いコメントを表示

0 件のコメント
採用された回答
Image Analyst
2016 年 10 月 21 日
But when col 1 is less than col 2, you're still replacing it. Just look at your third row. Please make your explanation match your example. You just simply replaced column 3 with column 1 regardless of what column 2 is.
Perhaps you mean this:
m = [5,4,0; 3,1,0; 5,7,0]
% Assign column 1 to column 3
% but only when it's greater than column 2
rowsToReplace = m(:, 1) > m(:, 2)
m(rowsToReplace, 3) = m(rowsToReplace, 1)
その他の回答 (1 件)
Gareth Lee
2016 年 10 月 21 日
編集済み: Gareth Lee
2016 年 10 月 21 日
I think the description of your question is not clear, a(:,1)>a(:,2) is a column vector not all true. Is this your judge condition?
if all(a(:,1)>a(:,2))
a(:,3)=a(:,1);
end
Is this that your want ?
3 件のコメント
Gareth Lee
2016 年 10 月 21 日
Since my answer is right, please vote it even though you accept another answer.
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!