Using fnplt in UIAxes

2 次查看(过去 30 天)
I learned that fnplt takes a function as an input.
fnplt(cscvn([1 0 -1 -1 0 1;0 1 0 0 -1 0]));
The line above works fine.However, I could not do that in the UIAxes.
fnplt(app.UIAxes,cscvn([1 0 -1 -1 0 1;0 1 0 0 -1 0]));
The line above would produce the following error:
Input is not a function.
Error in fnplt (line 72)
f = fn2fm(f);
What is my error here and how can I fix it?
  1 个评论
Derek Vasquez
Derek Vasquez 2022-8-8
This is not exactly a solution, but I found a workaround to a similar problem by using something like this
t = linspace(0,5,100);
traj = fnval(cscvn([1 0 -1 -1 0 1;0 1 0 0 -1 0]),t);
plot(app.UIAxes,traj(1,:),traj(2,:))
Hope this helps someone!

请先登录,再进行评论。

采纳的回答

Biraj Khanal
Biraj Khanal 2022-11-17
cscvn constructs spline in a piecewise polynomial form. as Derek has written in his comment, I had to evaluate the spline with fnval at certain breaks before plotting them .
For example
x = [-10,-8,-4,0,4,6,10];
y = [1 8 10 11 10 9 1];
s = cscvn([x;y]);
s_breaks = s.breaks;
new_y = fnval(s,linspace(s.breaks(1),s.breaks(end),100));
plot(app.UIAxes,new_y(1,:),new_y(2,:));

更多回答(0 个)

类别

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

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by