Step function with a ramp. Error in the creation of the ramp

1 visualizzazione (ultimi 30 giorni)
I am trying to create a ramp which is a part of a step function in order to plot it.
x=1e-6:1e-6:L;
for i=1:10
bl(i)=(2*i-1)*9.35e-4+(i-1)*8e-5;
bu(i)=(2*i-1)*9.35e-4+i*8e-5;
I(x>=bl(i) & x<bu(i))=(i-1)*1.26e-2+150.*(x-bl(i)); % Current in part b of the unit cell
end
But I get this error:
In an assignment A(I) = B, the number of elements in B and
I must be the same.
Do you know the solution?
  1 Commento
Azzi Abdelmalek
Azzi Abdelmalek il 27 Gen 2013
What is the initial value of I. What is the expected value of I ?
Can you explain what do you want to achieve?

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 27 Gen 2013
idx=(x>=bl(i) & x<bu(i));
I(idx)=(i-1)*1.26e-2+150.*(x(idx)-bl(i));
  7 Commenti
Matt J
Matt J il 28 Gen 2013
Here's a somewhat lazy way of doing it,
t=linspace(0,12,1e4);
f=@(x) 5.*(x<=5) +x.*(x>5 & x<=10) + 10*(x>10);
plot(t,f(t)); ylim([4,11])

Accedi per commentare.

Più risposte (2)

Image Analyst
Image Analyst il 27 Gen 2013
Modificato: Image Analyst il 27 Gen 2013
Have you considered linspace() instead?
bl = linspace(9.35e-4, 19*9.35e-4+9*8e-5, 10)
bu = linspace(9.35e-4, 19*9.35e-4+10*8e-5, 10)
output = linspace(0, 9*1.26e-2, 10)+150*(x-bl)
indexesToSet = x>=bl & x<bu % Only set those elements satisfying this.
I(indexesToSet) = output(indexesToSet)

Giorgos Papakonstantinou
Giorgos Papakonstantinou il 27 Gen 2013
Modificato: Giorgos Papakonstantinou il 27 Gen 2013
I didn't know about linspace. I would definitely try it out. Thank you both!
  1 Commento
Image Analyst
Image Analyst il 27 Gen 2013
It's just a more MATLAB-ish way of doing things since it avoids a loop, though with only 10 iterations, looping is definitely not a bottleneck. If you had tens of millions of iterations, it might make a noticeable effect.

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by