Using fnplt in UIAxes

2 visualizzazioni (ultimi 30 giorni)
Biraj Khanal
Biraj Khanal il 1 Giu 2022
Risposto: Biraj Khanal il 17 Nov 2022
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 Commento
Derek Vasquez
Derek Vasquez il 8 Ago 2022
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!

Accedi per commentare.

Risposta accettata

Biraj Khanal
Biraj Khanal il 17 Nov 2022
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,:));

Più risposte (0)

Categorie

Scopri di più su Spline Postprocessing in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by