Changing elements of row after certain element

2 views (last 30 days)
Rajesh
Rajesh on 14 Jul 2022
Edited: Dyuman Joshi on 14 Jul 2022
Hi,
I have a m*n matrix where some of rows are like these for exmaple
[-1,-0.65,-0.45,0,0.3,0.8,1,0.4,0.2,-0.1]
Now I need to make new row as follows
[-1,-0.65,-0.45,0,0.3,0.8,1,0,0,0]
that is once any of the elements in row becomes 1 after that all the elements will be zero.

Answers (2)

Dyuman Joshi
Dyuman Joshi on 14 Jul 2022
Edited: Dyuman Joshi on 14 Jul 2022
For a matrix run a loop through the rows
x=[-1,-0.65,-0.45,0,0.3,0.8,1,0.4,0.2,-0.1]
x = 1×10
-1.0000 -0.6500 -0.4500 0 0.3000 0.8000 1.0000 0.4000 0.2000 -0.1000
%Code edited according to the question
x(find(x==1,1)+1:end)=0
x = 1×10
-1.0000 -0.6500 -0.4500 0 0.3000 0.8000 1.0000 0 0 0
  3 Comments
Dyuman Joshi
Dyuman Joshi on 14 Jul 2022
You are correct, Jan, my code doesn't do what OP asked. The code written is according to what I had in mind at the time.
I will edit my code accordingly.

Sign in to comment.


Jan
Jan on 14 Jul 2022
Edited: Jan on 14 Jul 2022
x = [-1,-0.65,-0.45,0,0.3,0.8,1,0.4,0.2,-0.1];
idx = find(x == 1, 1);
if ~isempty(idx)
x(idx + 1:end) = 0;
end

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by