How to create a 2D lookUp table in matlab
117 次查看(过去 30 天)
显示 更早的评论
I want to create a 2D look Up table from 3 arrays
x1= 0:0.1:1 %axis values --> length is 11
x2= 25:2:35 %axis values --> length is 6
y= 0.01:0.001:0.06 % output data --> length is 51, rest of the 15 elements are zeros
I want to create an LUT which has 6 rows and 11 columns. Whenever I need to retrieve y, if exact query points of x1 and x2 is not present, then the function should give an interpolated value. I want to generate a .m script for this without using Simulink.
Anyone please help me with this.
Thanks
2 个评论
Walter Roberson
2016-8-2
length(y) is 51. If you were given the J'th x1 value exactly and the K'th x2 value exactly (so no interpolation needed), which of the 51 y values should be output?
采纳的回答
Stephen23
2016-8-2
You could use interp2 or interpn:
>> x1 = 0:0.1:1;
>> x2 = 25:2:35;
>> y = 0.01:0.001:0.06;
>> vm = zeros(numel(x1),numel(x2));
>> vm(1:numel(y)) = y;
>> interpn(x1,x2,vm,0,25)
ans = 0.010000
Note that this allocates the values of y row-wise into mat. If you want them to be allocated column-wise then transpose mat before and after the allocation.
1 个评论
Walter Roberson
2017-9-8
You need a scattered interpolant for that case. You should expect that off-diagonal might look fairly different than you imagine, as interpolation will come to depend upon which triangle happens to be closest in 3 space.
更多回答(1 个)
Satishkumar Aruljothi
2016-8-2
编辑:Satishkumar Aruljothi
2016-8-2
Use 2-D looup table from simulink library.
see the attached image.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!