function desired = path_planning(data_points,slope0,slopeF,dt)
t_dummy=0:((length(data_points))-1);
tq=0:(dt/10):((length(data_points))-1);
desired=spline(t_dummy,[slope0; data_points; slopeF],tq);
end
error "Data 'desired' is inferred as a variable size matrix, while its properties in the Model Explorer specify its size as inherited or fixed. Please check the 'Variable Size' check box and specify the upper bounds in the size field."
i am also attaching the simulink file, can you please see what is issue here? the same function works fine in matlab but not in simulink.

 채택된 답변

Birdman
Birdman 2018년 4월 4일

1 개 추천

Run the attached model. What you basically needed to do is to go to Model Explorer and set the output of the MATLAB Function as variable size by checking the tickbox there. Also, specify the size of the output.

댓글 수: 16

Not working.... the point to think is, data_points are variable input vector, it's length will define the size of output vector.... so how can i tell the simulink it's size beforehand in model explorer?
It worked for me without any error. Are you sure it is not working?
Yes, you can tell it by writing
str2num(get_param('open_loop_for_matlab_edited/Constant3','Value'))
this error pops up
same error, it seems increasing size don't matter here. Also Simulink is not handling varsize of array.
Birdman
Birdman 2018년 4월 4일
What is the code in your MATLAB Function?
function desired = path_planning(data_points,slope0,slopeF,dt)
t_dummy=0:((length(data_points))-1);
tq=0:(dt/10):((length(data_points))-1);
desired=spline(t_dummy,[slope0; data_points; slopeF],tq);
end
Add this line to your function at the very beginning. Also, check the attached figure to make sure your Model Explorer contains the necessary information.
function desired = path_planning(data_points,slope0,slopeF,dt)
desired=zeros(data_points(1),data_points(2));
t_dummy=0:((length(data_points))-1);
tq=0:(dt/10):((length(data_points))-1);
desired=spline(t_dummy,[slope0; data_points; slopeF],tq);
end
not working, but i need to say thank you.
Birdman
Birdman 2018년 4월 4일
Have you checked my attached figure? Have you verified that it is the same as yours? Check for the model and block name match.
yeah i matched that too
Birdman
Birdman 2018년 4월 4일
There you see your model's name is open_loop_for_matlab but in size field, the model name is open_loop_for_matlab_reedited. Erase the _reedited part to match the model name with the content of get_param. Note that they should be matching at every letter. Try this.
they are matching now, still same error
Birdman
Birdman 2018년 4월 4일
hamza's answer moved here:
thanks Birdman, i got a solution from this discussion. i first need to define var size where you asked me to. So it outputs the correct results.
Birdman
Birdman 2018년 4월 4일
You are welcome. Actually, there was nothing else I could suggest because it should have worked with the way that I suggested. Anyway, I am glad it works.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Lavanya Dachepally
Lavanya Dachepally 2019년 7월 17일

0 개 추천

The same question but in my case I need to check that variable size and specify its size through commands.
I have connected to the function block to the model through commands and the output of the function comes into picture when I ran code which is of variable based on the input.
Please can some one help how to check the box and specify its size through some commands.

카테고리

도움말 센터File Exchange에서 Interactive Model Editing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by