Creating a piecewise function
Ältere Kommentare anzeigen
I am trying to make that triangular wave for one period with the code (I don't want to plot it, just to generate x and y values in the interval)
x = 0 : 0.5 : 4;
for k = 1 : length(x)
if x(k) < 1
y(k) = 0;
elseif x(k) >= 1 & x(k) < 2
y(k) = x-1;
elseif x(k) >=2 & x(k) < 3
y(k) = 3-x;
elseif x(k)>=3
y(k) = 0;
end
end

Then Matlab returns 'In an assignment A(I) = B,...' I think I am not trying to assign a scalar to a vector or vice versa, what is the problem here?
Akzeptierte Antwort
Weitere Antworten (1)
Scott MacKenzie
am 14 Jun. 2021
A few bugs in your code. Here's the fix (although there are easier ways to do this):
x = 0 : 0.5 : 4;
for k = 1 : length(x)
if x(k) < 1
y(k) = 0;
elseif x(k) < 2
y(k) = x(k)-1;
elseif x(k) < 3
y(k) = 3-x(k);
else
y(k) = 0;
end
end
plot(y);

1 Kommentar
Ali Kiral
am 14 Jun. 2021
Kategorien
Mehr zu Linear Algebra finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!