Changing elements of row after certain element
1 回表示 (過去 30 日間)
古いコメントを表示
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.
0 件のコメント
回答 (2 件)
Dyuman Joshi
2022 年 7 月 14 日
編集済み: Dyuman Joshi
2022 年 7 月 14 日
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]
%Code edited according to the question
x(find(x==1,1)+1:end)=0
3 件のコメント
Jan
2022 年 7 月 14 日
This deletes all elements after a 1. The OP asked for setting the values to 0.
find() can reply an empty matrix or a vector. This works, but only, because the colon operator ignores all elements of the vector except for the 1st one. This is at least confusing.
Dyuman Joshi
2022 年 7 月 14 日
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.
参考
カテゴリ
Help Center および File Exchange で Interactive Control and Callbacks についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!