Interpolating a whole matrix
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Inmodi
el 19 de Dic. de 2014
Comentada: Mohammad Abouali
el 19 de Dic. de 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 comentario
dpb
el 19 de Dic. de 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.
Respuesta aceptada
Mohammad Abouali
el 19 de Dic. de 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 comentario
Mohammad Abouali
el 19 de Dic. de 2014
I have not worked with simulink. Sorry that I can not help you with Simulink.
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!