Non numeric data X plot

I need help to solve this plot:
syms X L
X = 0:L/16:L;
Y = 1 + 2*X;
plot (X,Y);
This is just an example, the function I am trying to solve is a bit complicated.

 Risposta accettata

In this particular case, you can plot something meaningful. In most cases, you cannot plot with unresolved symbolic variables unless you use fplot() or fplot3() or fsurf() to have MATLAB automatically substitute specific numeric values for the unresolved values.
You cannot, for example, plot a family of curves expecting it to show you abstract curves such as "s", "s/2", "s/4", "3s/2" and so on. Plotting always requires that something replaces all symbolic variables with particular numeric values.
syms X L
X = 0:L/16:L;
Y = 1 + 2*X;
fplot3(L, X, Y, [0 20]); xlabel('L'); ylabel('X'); zlabel('Y');

5 Commenti

Tiago Araujo
Tiago Araujo il 17 Apr 2021
Is it possible to get something like this image?
Walter Roberson
Walter Roberson il 18 Apr 2021
You can get it to draw nearly anything you want, if you put enough effort into it, since you can program in straight lines and curves.
However, to get a diagram such as that, you would still need to plot with specific numeric values, and then label with text.
There is no possibility that MATLAB will automatically draw a diagram such as that on your behalf, with symbolic labels. You would have to tell it something like to use L = 10 for the purpose of drawing, but then tell it to use ytick([0 10]); yticklabel({'0', 'L'})
How can I fix it?
clear all; clc;
syms X L
X = 0:L/16:L;
Y = 1 + 2*(X/L);
figure
fplot(Y,[0 1]);
I need to plot Y(X) between 0 and 1, in my real problem it doesnt work to assign value to L...
I paste an example from my teacher, i would like to do something like that...
I also tried this:
clear all; clc;
syms X L
X = 0:L/16:L;
for i=1:length(X)
Y(i) = 1 + 2*(X(i)/L);
end
figure
fplot(Y(X),[0 1]);
But it doesnt work.
Walter Roberson
Walter Roberson il 18 Apr 2021
Modificato: Walter Roberson il 18 Apr 2021
syms X L
X = 0:L/16:L;
for i=1:length(X)
Y(i) = 1 + 2*(X(i)/L);
end
figure
plot(X/L, Y);
xticklabels(string(sym(xticks)) + " L")
Tiago Araujo
Tiago Araujo il 19 Apr 2021
Great man, you are great!!!
THANKS!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Creating, Deleting, and Querying Graphics Objects in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by