Substract only higher then a limit? Please find the example program below.
Info
This question is closed. Reopen it to edit or answer.
Show older comments
Suppose
dataI = [100;200;300;100;200;300];
limit = 150;
if any(dataI >= limit)
disp('There is at least one value above the limit.')
DataI_with_Neg = dataI - 100; %% Here I want to sub 100 from all the values which are higher than limit = 150 and get new data after sub%%
else
disp('All values are below the limit.')
end
Answers (1)
madhan ravi
on 12 Feb 2019
Edited: madhan ravi
on 12 Feb 2019
https://blogs.mathworks.com/loren/2013/02/20/logical-indexing-multiple-conditions/ - this should get you started
DataI_with_Neg = dataI(dataI > limit) - 100;
% ^^^^^^^^^^^^^^^--- add this (datas which are higher than 150)
6 Comments
Rakesh Yadav Kodari
on 12 Feb 2019
madhan ravi
on 12 Feb 2019
Data_higher_than_limit = dataI(dataI > limit)
Data_higher_than_limit_subtracted_by_100 = dataI(dataI > limit) - 100
John D'Errico
on 12 Feb 2019
loc = dataI >= 150;
dataI(loc) = dataI(loc) - 100;
Stephen23
on 12 Feb 2019
Perhaps this?:
>> dataI = [100;200;300;100;200;300]
dataI =
100
200
300
100
200
300
>> limit = 100;
>> idx = dataI >= limit;
>> dataI(idx) = dataI(idx)-100
dataI =
0
100
200
0
100
200
madhan ravi
on 12 Feb 2019
Edited: madhan ravi
on 12 Feb 2019
Ah thank you John D'Errico & Stephen Cobeldick now it's clear what the OP wants.
Rakesh Yadav Kodari
on 12 Feb 2019
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!