Arithmetic problem with for loop

Hi, i am new with MATLAB.
I would like to use this formula in for loop: ℓ?=taper1*ℓ?−1
There is no error message but i can't see a proper value on output. (i control my values with calculator programs) (i checked my variables. and confirmed that they are true before this loop).
And my second problem is i don't know how to add new line with every increment.
Here is my try:
l= (1:N); //creating and empty array
l(1)=((3*(10^8))/(2*f1)); //formula
for i = 2:N
l(i) = taper1 * l(i - 1);
set(handles.popupmenu3,'String',l(i) );
end
i tried to add new line with this but didn't work
set(handles.popupmenu3,'String',l(i) \n );

1 comentario

Rik
Rik el 22 de Mayo de 2019
Most of what you have shown here is not valid Matlab syntax. It seems like you lack the basics of Matlab. It is really useful to learn the basics before attempting more complicated things. This even holds true for a relatively simple language as Matlab.
This is one of many tutorials you could try.

Iniciar sesión para comentar.

 Respuesta aceptada

Walter Roberson
Walter Roberson el 22 de Mayo de 2019
Editada: Walter Roberson el 23 de Mayo de 2019
l = zeros(1,N); %creating and empty array
l(1) = ((3*(10^8))/(2*f1)); %formula
for i = 2:N
l(i) = taper1 * l(i - 1);
handles.popupmenu3.String{end+1} = num2str( l(i) );
drawnow();
end
updating the popup string one by one is inefficient: it would be better to do all of the calculations first and then update at the end.
Note: you could also calculate
l = ((3*(10^8))/(2*f1)) .* taper1.^(0:N-1);
with no loop required.

7 comentarios

Rik
Rik el 22 de Mayo de 2019
Shouldn't it be this?
handles.popupmenu3.String{end+1}
% ----------^
Walter Roberson
Walter Roberson el 23 de Mayo de 2019
You are right, Rik; I have fixed it.
Mustafa Uysal
Mustafa Uysal el 23 de Mayo de 2019
Thank you,it works
And lastly, i would like to write l(i)=value to each line. How can i add l(i)?
Rik
Rik el 23 de Mayo de 2019
Do you mean something like this?
handles.popupmenu3.String{end+1} = sprintf( 'value= %.1f' , l(i) );
Mustafa Uysal
Mustafa Uysal el 23 de Mayo de 2019
Editada: Rik el 23 de Mayo de 2019
Not exactly,
my desired output is: (lets say i=5 and value=3)
l(5)= 3
Rik
Rik el 23 de Mayo de 2019
So like this?
sprintf('l(%d)= %.1f',i,l(i))
Otherwise, try searching the documentation for a solution. Matlab has excellent documentation with many examples.
Mustafa Uysal
Mustafa Uysal el 23 de Mayo de 2019
It works thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 22 de Mayo de 2019

Comentada:

el 23 de Mayo de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by