Substract only higher then a limit? Please find the example program below.
Infos
Cette question est clôturée. Rouvrir pour modifier ou répondre.
Afficher commentaires plus anciens
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
Réponses (1)
madhan ravi
le 12 Fév 2019
Modifié(e) : madhan ravi
le 12 Fév 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 commentaires
Rakesh Yadav Kodari
le 12 Fév 2019
madhan ravi
le 12 Fév 2019
Data_higher_than_limit = dataI(dataI > limit)
Data_higher_than_limit_subtracted_by_100 = dataI(dataI > limit) - 100
John D'Errico
le 12 Fév 2019
loc = dataI >= 150;
dataI(loc) = dataI(loc) - 100;
Stephen23
le 12 Fév 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
le 12 Fév 2019
Modifié(e) : madhan ravi
le 12 Fév 2019
Ah thank you John D'Errico & Stephen Cobeldick now it's clear what the OP wants.
Rakesh Yadav Kodari
le 12 Fév 2019
Cette question est clôturée.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!