Filter löschen
Filter löschen

Cannot Plot in the Desired interval, What am i doing wrong here?

3 Ansichten (letzte 30 Tage)
theta(:,1) = [0:360]';
Ac = 5;
k = 2000;
m = 0.001;
RPM = 1500;
if theta(theta(:,1)>110) && theta(theta(:,1)<170)
x = (Ac/k)*(1+sin(sqrt(k/m).*(theta/6*RPM)-(pi/2)));
else
x = 0;
end
plot(theta,x);
I want to plot for theta varying from 0 to 360, but only desire to have x between theta>110 and <170
But its returning me errors
I have tried & insted of && too
Can you suggest me a modification
Thank you

Akzeptierte Antwort

madhan ravi
madhan ravi am 15 Jun. 2020
Bearbeitet: madhan ravi am 15 Jun. 2020
clear theta
theta = 0:360;
Ac = 5;
k = 2000;
m = 0.001;
RPM = 1500;
x = theta * 0;
ix = (theta>110) & (theta<170);
x(ix)= (Ac/k)*(1+sind(sqrt(k/m).*(theta(ix)/6*RPM)-(pi/2)));
plot(theta,x);
  4 Kommentare
Sandip Ghatge
Sandip Ghatge am 16 Jun. 2020
@madhan ravi @John D'Errico
I was implementing the solution given by you, but i encountered the following problem in which array A size is fixed which is (73,1). Hence, when i go to plot, matlab gives an error saying the left and right sides are not same. The code is,
theta = 0:360;
x = theta * 0;
ix = (theta>110) & (theta<=173);
x(ix)= A;
plot(theta,x,'b');
This code is giving me blank plot. However, when i try to plot with theta>100 & theta>=173,(i.e. with same size as A), i get the plot.
I was thinking about using a linspace command to split theta from 110 to 173 in 73 equal portions and then plotting, unfortunately after multiple tries and getting blank plots, i think that too is not possible.
Can you suggest me something, where i can plot even with different arrays on both sides.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Performance 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