How to fix this loop to get the desired output ?

1 Ansicht (letzte 30 Tage)
Aswin Sandirakumaran
Aswin Sandirakumaran am 23 Mai 2018
Kommentiert: Majid Farzaneh am 23 Mai 2018
New_Td = [4,1,1]
for t = New_Td
for b = 1:t
duplicate(b) = 0;
r(b) = 0;
fprintf('Hai from %i\n',t);
disp(duplicate);
end
end
Output I am getting look like this: ->>>> WRONG OUTPUT WHICH I AM GETTING
if true
Hai from 4
0
Hai from 4
0 0
Hai from 4
0 0 0
Hai from 4
0 0 0 0
Hai from 1
0 0 0 0
Hai from 1
0 0 0 0
end
But CORRECT OUTPUT SHOULD BE LIKE THIS:
if true
Hai from 4
0
Hai from 4
0 0
Hai from 4
0 0 0
Hai from 4
0 0 0 0
Hai from 1
0
Hai from 1
0
end

Akzeptierte Antwort

Majid Farzaneh
Majid Farzaneh am 23 Mai 2018
Hi,
New_Td = [4,1,1]
for t = New_Td
duplicate=[];
for b = 1:t
duplicate(b) = 0;
r(b) = 0;
fprintf('Hai from %i\n',t);
disp(duplicate);
end
end
  1 Kommentar
Majid Farzaneh
Majid Farzaneh am 23 Mai 2018
At the first time for t=4, duplicate length become 4. When t become 1, duplicate length is still 4.
You should destroy duplicate and build it again after each iteration. The code above is work.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

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

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by