Conditional function on matrix
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
This is a tough one to explain.
I am analysing a big chunk of data and now I have a equation defined by intervals.
Kd=1 for Kt<0.2
Kd=e for 0.2<=Kt<=1.09*c2
Kd=f for Kt>1.09*c2
Kt=rand(8784,89);
c2=ones(size(Kt))/2;
e=rand(size(Kt));
f=rand(size(Kt));
I've simplified it quite a bit, because it envolves other matrixes (all with the same size (8784,89)) on the conditions.
My question is, how to execute it? I've tried piecewise, but I'm stuck with the symbolic. I would need to get Kd as double.
Kd(Kt)=piecewise(Kt<0.2,1, 0.2<=Kt<=1.09*c2,10, Kt>1.09*c2,5);
I've tried with If and elseif but as far as I've seen it will only analyze the first element of the array to verify if the condition is true:
if Kt<0.2
Kd=1;
elseif 0.2<=Kt<=1.09*c2
Kd=e;
elseif Kt>1.09*c2
Kd=f;
end
Other ideas or something I'm missing?
edit: edited after trying solution given by Matt J.
thanks.
0 Kommentare
Akzeptierte Antwort
Matt J
am 23 Apr. 2019
Bearbeitet: Matt J
am 23 Apr. 2019
vals=[1,10,5];
Kd=vals( discretize(Kt,[-inf,0.2,1.09*c2,+inf]) );
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Interpolation of 2-D Selections in 3-D Grids 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!