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

1 回表示 (過去 30 日間)

採用された回答

Image Analyst
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 件のコメント
julios
julios 2016 年 10 月 21 日
Yes, it was what I need, I was wrong in the explanation, thank you very much

サインインしてコメントする。

その他の回答 (1 件)

Gareth Lee
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
Gareth Lee 2016 年 10 月 21 日
Since my answer is right, please vote it even though you accept another answer.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

タグ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by