Effacer les filtres
Effacer les filtres

Interpolating a whole matrix

2 vues (au cours des 30 derniers jours)
Inmodi
Inmodi le 19 Déc 2014
Commenté : Mohammad Abouali le 19 Déc 2014
I have a (3x3)-matrix whose elements change with time. I store the time in a (n x 1)-array and the matrix in a (n x 3 x 3)-matrix. Now for a Simulink simulation I want to extract the (3 x 3)-matrix through interpolation by the simulation time.
Of course, in principle, I could just create interpolation tables for each element of the (3x3)-matrix and reassemble the outputs to a new (3x3)-matrix but I wonder if there'd be a simpler way.
N. B.: I don't have particular toolboxes.
  1 commentaire
dpb
dpb le 19 Déc 2014
...I could just create interpolation tables for each element of the (3x3)-matrix and reassemble the outputs...
If you were to instead store the array as nine columns by length N then interp1 will do each column automagically and since it's a single time slice (I presume) being returned each time a reshape to 3x3 if need shouldn't be too costly.

Connectez-vous pour commenter.

Réponse acceptée

Mohammad Abouali
Mohammad Abouali le 19 Déc 2014
% Making a sample data set
A(1,:,:)=ones(3,3);
A(2,:,:)=ones(3,3)*2;
A(3,:,:)=ones(3,3)*3;
time=0.1:0.1:0.3;
% now interpolating to t=0.15
B=mat2cell(A,3,ones(3,1),ones(3,1));
A_interpolated=cellfun(@(x) interp1(time,x,0.15),B);
  1 commentaire
Mohammad Abouali
Mohammad Abouali le 19 Déc 2014
I have not worked with simulink. Sorry that I can not help you with Simulink.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Simulink dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by