Interpolating a whole matrix
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Inmodi
il 19 Dic 2014
Commentato: Mohammad Abouali
il 19 Dic 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 Commento
dpb
il 19 Dic 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.
Risposta accettata
Mohammad Abouali
il 19 Dic 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 Commento
Mohammad Abouali
il 19 Dic 2014
I have not worked with simulink. Sorry that I can not help you with Simulink.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Interpolation in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!