I want to produce square wave without using square function, but this code it showing error, "illegal use of IF keyword". How to rectify it?
19 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Piyush Gupta
il 5 Ago 2020
Risposto: Steven Lord
il 5 Ago 2020
t=-10:0.1:10;
a=1;
for i=1:2:201
{
if a==1
{
z(1,i)=0;
z(1,i+1)=0;
}
else
{
z(1,i)=1;
z(1,i+1)=1;
}
end
a=a*(-1);
}
end
plot(t,z)
0 Commenti
Risposta accettata
Walter Roberson
il 5 Ago 2020
In MATLAB, {} is used only for building cell arrays, or extraction of data from collection objects, such as cell arrays or tables or string scalars. You should remove all of those { and } that you have.
0 Commenti
Più risposte (1)
Steven Lord
il 5 Ago 2020
In some languages (like C) you need to use {} around sections of code (like the bodies of for loops or if statements.) MATLAB is not one of those languages.
t=-10:0.1:10;
a=1;
for i=1:2:201
if a==1
z(1,i)=0;
z(1,i+1)=0;
else
z(1,i)=1;
z(1,i+1)=1;
end
a=a*(-1);
end
plot(t,z)
I'll leave it to you to decide what to do about the extra element in z that prevents you from calling plot on t and z.
Based on this mistake (trying to use another language's syntax in MATLAB) I'm guessing you're new to MATLAB. If that's the case, I recommend going through the free MATLAB Onramp tutorial (https://www.mathworks.com/support/learn-with-matlab-tutorials.html) to familiarize yourself with the basics of MATLAB syntax.
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!