selection of certain data from matrix

5 visualizaciones (últimos 30 días)
Paul Rogers
Paul Rogers el 14 de En. de 2020
Respondida: Paul Rogers el 14 de En. de 2020
Hi, my problem is that I have 3 matrix:
FlowMeasurements, psic_pos_cheb and psic_neg_cheb.
I need a matrix done this way with:
- all the columns of the psic_neg_cheb where FlowMeasurements is negative
- all the columns of the psic_pos_cheb where FlowMeasurements is positive.
For example, in this case it would be a matrix whith the 1-6 colums of psic_neg_cheb,
and after the 7-20 colums of psic_pos_cheb.
The matrixes are in attached

Respuesta aceptada

Paul Rogers
Paul Rogers el 14 de En. de 2020
I finally did this way:
for i=1:length(FlowMeasurements)
if FlowMeasurements(i) < 0
CompressorMapMatrix(:,i) = psic_neg_cheb (:,i);
else
CompressorMapMatrix(:,i) = psic_pos_cheb (:,i);
end
end

Más respuestas (1)

Walter Roberson
Walter Roberson el 14 de En. de 2020
mask_pos = FlowMeasurements > 0;
mask_neg = FlowMeasurements < 0;
pos_part = psic_neg_cheb(:,mask_pos);
neg_part = psic_neg_cheb(:,mask_neg);
I would often tend to use ~mask_pos instead of constructing an entirely new mask, but ~mask_pos would include <= 0 not just < 0 and that is perhaps not acceptable.
  3 comentarios
Paul Rogers
Paul Rogers el 14 de En. de 2020
Editada: Paul Rogers el 14 de En. de 2020
I see, it did't put rows and columns as it should, but it's anyway different values.
Paul Rogers
Paul Rogers el 14 de En. de 2020
the proble is that it takes the first 6 columns of
psic_neg_cheb
which is right, and also the last 14th columns of
psic_neg_cheb
instead of
psic_pos_cheb

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Productos


Versión

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by