Replacing valuees in a matrix
1 view (last 30 days)
Show older comments
Hi
I need to replace values in a vector bg_correction with values from vector Sh_a_po if a condition:
Sh_a_BG <= 0.1*Sh_a_po
is satisfied (for each cell separately)
I have 3 vectors:
%%---
bg_correction =
0.1120
0.0495
0.0261
0.0158
0.0393
0.0096
Sh_a_BG =
0.0008
0.0004
0.0007
0.1698
0.1756
0.0114
Sh_a_po=
0.0495
0.0261
0.0160
0.0395
0.0096
0.0035
%if Sh_a_BG <= 0.1*Sh_a_po --> replace bg_correction with Sh_a_po
bg_correction(Sh_a_BG_po<=0.1*Sh_a_po) = Sh_a_po1;
%%
The last line doesn't work
Message at Command Window:
In an assignment A(I) = B, the number of elements in B and I must be the same.
Thanks,
Dominika
0 Comments
Accepted Answer
Joseph Cheng
on 19 Mar 2014
Edited: Joseph Cheng
on 19 Mar 2014
I would suggest use the find() function. With find you can get the index of values where it is Sh_a_BG_po<=0.1*Sh_a_po.
index = find(Sh_a_BG_po<=0.1*Sh_a_po);
bg_correction(index)=Sh_a_po1(index);
1 Comment
Joseph Cheng
on 19 Mar 2014
additionally your original last line would work but you need to include the (Sh_a_BG_po<=0.1*Sh_a_po) on both sides of the equation.
bg_correction(Sh_a_BG_po<=0.1*Sh_a_po) = Sh_a_po1(Sh_a_BG_po<=0.1*Sh_a_po);
More Answers (1)
See Also
Categories
Find more on NaNs 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!