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

 Accepted Answer

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)

More Answers (1)

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 Comments

Yes, your approach is correct, I was wrong in my explanation. that is what I need, thanks
Since my answer is right, please vote it even though you accept another answer.

Sign in to comment.

Categories

Find more on Argument Definitions in Help Center and File Exchange

Products

Tags

Asked:

on 21 Oct 2016

Commented:

on 22 Oct 2016

Community Treasure Hunt

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

Start Hunting!