Interpolate 3D Matrix based on frequency values

1 次查看(过去 30 天)
I am using m file for post processing of FEA(Finite Element Analysis) results derived from another software.
In this case I have a (a*1*c) matrix which has to be interpolated based on the third dimension 'c' . In the definition of the matrix dimension, I have assigned the dimension 'c' as just numbers starting from 1 upto the required size.
But the problem now is that the third dimension 'c' is a frequency value ( eg: 100 Hz, 300 Hz, 700 Hz, etc). I have to interpolate the (a*1) values based on the user input frequency (eg: for 250 Hz).
Again this has to be done for a number of values, which I guess can be accomplished with the help of a loop. I have the frequency values defining the dimension 'c' and the user input as a array.
Can anyone help me out with this?
Thank you very much for your time and patience.

采纳的回答

Matt J
Matt J 2012-11-14
use the PERMUTE command to make the array dimensions c x a. Then just use interp1, e.g.,
interp1(frequencies, Matrix_cxa, 250);
  2 个评论
Lokeshwaran
Lokeshwaran 2012-11-14
Thank you very much for your answer. But can you make it clear with an example please?
Matt J
Matt J 2012-11-14
编辑:Matt J 2012-11-14
OK. So if you want to interpolate the matrix A below at "row 2.5", you would do
>> A=[4 5 6; 7 8 9; 10 11 12]'
A =
4 7 10
5 8 11
6 9 12
>> interp1([1;2;3],A, 2.5)
ans =
5.5000 8.5000 11.5000

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by