Interpolating a whole matrix
1 visualización (ú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
Categorías
Más información sobre Interpolation en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!