Impose a numerical limit on the value of a sum of two vectors
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Roderick
am 16 Jul. 2021
Kommentiert: Stephen23
am 16 Jul. 2021
Hello everyone
I want to sum two arrays, let's say a1 and a2. However, I seek that the sum, element by element, of these vectors does not exceed the maximum value of the array a1. Those elements of the sum vector that exceed this limit, I would like them to show the maximum of a1 as a numerical value.
How could I do this?
0 Kommentare
Akzeptierte Antwort
Alan Stevens
am 16 Jul. 2021
One possibility is
min(max(a1),a1+a2)
1 Kommentar
Stephen23
am 16 Jul. 2021
+1 this is the efficient MATLAB approach. However it needs to avoid the issues caused by the default behavior of max:
min(max(a1(:)),a1+a2)
Weitere Antworten (2)
Jayant Gangwar
am 16 Jul. 2021
It is my understanding that you would like to sum two arrays element by element and replace all the elements in the resulting array that are greater than the max element in first array by that max element. Given below is an example where I have done the same with two dummy arrays.
a=1:10;
b=1:10;
ans=a+b;
m=max(a);
ans(ans>m)=m
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!