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 Kommentar

Rik
Rik am 22 Mai 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.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 22 Mai 2019
Bearbeitet: Walter Roberson am 23 Mai 2019

0 Stimmen

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 Kommentare

Rik
Rik am 22 Mai 2019
Shouldn't it be this?
handles.popupmenu3.String{end+1}
% ----------^
Walter Roberson
Walter Roberson am 23 Mai 2019
You are right, Rik; I have fixed it.
Mustafa Uysal
Mustafa Uysal am 23 Mai 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 am 23 Mai 2019
Do you mean something like this?
handles.popupmenu3.String{end+1} = sprintf( 'value= %.1f' , l(i) );
Mustafa Uysal
Mustafa Uysal am 23 Mai 2019
Bearbeitet: Rik am 23 Mai 2019
Not exactly,
my desired output is: (lets say i=5 and value=3)
l(5)= 3
Rik
Rik am 23 Mai 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 am 23 Mai 2019
It works thank you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by