Conditional function on matrix
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Osnofa
el 23 de Abr. de 2019
Comentada: Osnofa
el 24 de Abr. de 2019
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 comentarios
Respuesta aceptada
Matt J
el 23 de Abr. de 2019
Editada: Matt J
el 23 de Abr. de 2019
vals=[1,10,5];
Kd=vals( discretize(Kt,[-inf,0.2,1.09*c2,+inf]) );
Más respuestas (0)
Ver también
Categorías
Más información sobre Interpolation of 2-D Selections in 3-D Grids en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!