Interpolation of 3D scattered data to 3D graph in Simulink

1 Ansicht (letzte 30 Tage)
Byeonguk
Byeonguk am 21 Sep. 2012
My experimental data x,y,z are 1*m matrices.
And I want to make 3D graph of f(x,y,z).
I saw the way of using griddata3 and meshgrid, but I have a problem.
I made random scale 1*m matrices xi,yi,zi using MATLAB function like this.
function xl=fcn(~)
xl = linspace(-10,10,200);
And I made v to use griddata3 like this.
function v = fcn(xl,yl,zl) v = griddata3(xl,yl,zl);
Then, there was a error that I can't use griddata3.
The function 'griddata3' is not supported for standalone code generation. See the documentation for coder.extrinsic to learn how you can use this function in simulation. Function 'MATLAB Function3' (#200.32.41), line 3, column 5: "griddata3" Launch diagnostic report.
I changed it using coder.extrinsic, but there was another error.
function v = fcn(xl,yl,zl)
coder.extrinsic('griddata3')
v = griddata3(xl,yl,zl);
Function output 'v' cannot be an mxArray in this context. Consider preinitializing the output variable with a known type.
Function 'MATLAB Function3' (#200.0.80), line 1, column 1: "function v = fcn(xl,yl,zl)" Launch diagnostic report.
I changed like this.
function v = fcn(xl,yl,zl)
coder.extrinsic('griddata3')
v=zeros(200,200,200);
v = griddata3(xl,yl,zl);
Another error
MATLAB Function Interface Error: Error calling generated SFunction, untitled2_sfun. Invalid MEX-file 'C:
What should I do now? Am I right from this phase?

Antworten (1)

Mike Hosea
Mike Hosea am 21 Sep. 2012
What version of MATLAB are you using? This will help me figure out what to do. Note that the function griddata3 no longer exists in R2012b. One is supposed to use griddata instead. The invalid mex file error is probably because a 200-by-200-by-200 array is not going to work with static memory allocation (61 megabytes). You'll need to have dynamic memory allocation enabled for sure.
  2 Kommentare
Byeonguk
Byeonguk am 21 Sep. 2012
Bearbeitet: Byeonguk am 21 Sep. 2012
I use R2011b. And am I doing right to make graph? Are there more easy ways to make graph using Simulink?
K E
K E am 21 Sep. 2012
If it is OK to plot the data after the simulation is complete, I would export it to the workplace using the To Workspace block. Then you can use griddata etc from within Matlab rather than in Simulink. And if you just need to plot the datapoints without interpolation, use plot3.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by