What's the error in my code?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I can't seem to plot this function I wrote. What is wrong with it? Thanks in advance!!
function [] = Apple(D,T)
x= linspace (0,30,3000);
y=0;
for i = 0:6;
if x > (i*T) && x < ((T*i)+(D*T))
y(x)= 1;
elseif y(x) == 0;
end
end
plot(x, y(x));
ylim([-.25,1.25])
end
2 Kommentare
Antworten (2)
Michael Haderlein
am 2 Feb. 2015
x > (i*T) && x < ((T*i)+(D*T))
You cannot use && in case of arrays. Use & instead.
if x > (i*T) && x < ((T*i)+(D*T))
You cannot use arrays as condition for the if structure. What should the program do if some elements of the array are true and some are false?
elseif y(x) == 0;
Again, that's an array as condition which doesn't work. Additionally, x is not an appropriate index (only values 1, 2, 3, and so on are allowed).
0 Kommentare
Stephen23
am 2 Feb. 2015
Bearbeitet: Stephen23
am 4 Feb. 2015
Here is a short list of some of the syntax errors and poor coding. Some of these prevent it from working:
- MATLAB has one-based indexing . The code y(x) tries to obtain the zeroth element (as x(1)==0), which is invalid in MATLAB.
- Logical short-circuit operators || and && require scalar logical values, not arrays as they are here: x > (i*T) && x < ((T*i)+(D*T)). Because x is an array, x>n will also be an array, and so the syntax x<n && ... will always be an error.
Others are just things that really could be done much much better:
- Array preallocation before the loop: y probably needs to be defined to be the same size as x.
- Pay attention to the editor code warnings : it shows one warning with the version I am using.
- Variable name i should be avoided, as this is the name of the inbuilt imaginary unit .
- The use of a for loop, when this simple code should really be vectorized .
Without knowing exactly what your aim is, it is hard to know how to "fix" this code, as it is very unclear.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical 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!