logical index replace values

2 次查看(过去 30 天)
Hi
mBall(1:15001,4) = 0;
-3.42 -24.55 5.19 0
-3.01 -24.59 5.66 0
-2.59 -24.64 6.11 0
-2.19 -24.69 6.53 0
-1.78 -24.73 6.91 0
-1.38 -24.79 7.28 0
-0.98 -24.84 7.63 0
% this is what an exsample of what my mBall looks like
% I have an array c that consist of 3786x2
% I'm trying to insert values from c(:,2) in mBall(:,4)
% But only in the rows equal to value in c(:,1)
c =
2 1
3 1
4 2
5 3
7 3
% mBall should look like this afterwards
mball =
-3.42 -24.55 5.19 0
-3.01 -24.59 5.66 1
-2.59 -24.64 6.11 1
-2.19 -24.69 6.53 2
-1.78 -24.73 6.91 3
-1.38 -24.79 7.28 0
-0.98 -24.84 7.63 3
  7 个评论
Morten Jørgensen
Morten Jørgensen 2019-3-26
yes, how should I then put the value into mBall(:,4)?
Morten Jørgensen
Morten Jørgensen 2019-3-26
previously I have used function find like this
[xlocs, ylocs] = find(0 < output & output < 1);
c = [xlocs, ylocs]
% then i have my array mBall, that i want to change
mBall(1:15001,4) = 0;
% I want to replace the 0 in column 4 of mBall with the numbers in ylocs?
% is this more clear?

请先登录,再进行评论。

回答(1 个)

KSSV
KSSV 2019-3-26
编辑:KSSV 2019-3-26
Read about logical indexing.
idx = 0 < output5 & output5 < 1 ;
output = output5(idx);

Community Treasure Hunt

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

Start Hunting!

Translated by