Making a matlab GUI. Display all values taken from an iterative loop on a static Text
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Evans Gyan
el 30 de En. de 2018
Comentada: Jan
el 21 de Jun. de 2021
hello guys, Am making a matlab GUI and i want the results to appear in a vertical format on a static textbox. This is my code
k = 15;
n = 1;
while k > n
q = mood(k,2);
if q == 0
k = k / 2;
else k = (k * 3) + 1;
end
for answer = k
%This format should display on my textbox
%disp(answer); %does not show on static textbox.
set(handles.mytext, 'String', answer)
end
end
I want the results to appear like this in a static textbox
k = 15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1 But the above code display only the last value. Thanks in advance
1 comentario
Adam
el 30 de En. de 2018
k is always a scalar so
for answer = k
will only run once. If it did run more than once you are still just overwriting what is already in the text box though anyway.
Storing all the answers you want and using something like
doc sprintf
on the whole thing rather than using a for loop would seem a better approach.
Respuesta aceptada
Jan
el 30 de En. de 2018
Editada: Jan
el 30 de En. de 2018
k = 15;
n = 1;
i = 0;
allK = [];
while k > n
if mod(k, 2) == 0 % Not "mood"!
k = k / 2;
else
k = (k * 3) + 1;
end
i = i + 1;
allK(i) = k; % A warning will appear in the editor
end
set(handles.mytext, 'String', sprintf('%d\n', allK));
Now allK grows iteratively. This is very expensive if the resulting array is large, e.g. for 1e6 elements. For your problem, the delay is negligible. A pre-allocation is not trivial here, because you cannot know how many elements are created by this function. But it is better to pre-allocate with a poor too large estimation:
allK = zeros(1, 1e6); % instead of: allK = [];
set(handles.mytext, 'String', sprintf('%d\n', allK(1:i)));
Alternatively you can assign a cell string to the 'String' property also instead of inserting line breaks:
set(handles.mytext, 'String', sprintfc('%d', allK(1:i)));
3 comentarios
Muhamad Luqman Mohd Nasir
el 21 de Jun. de 2021
@Jan hello Sir can you inspect my question (which have already been posted) since i have also encounters almost the same problem as this.
Jan
el 21 de Jun. de 2021
Please do not advertise questions in comments of other questions. Imagine the clutter, if every user does this.
Más respuestas (0)
Ver también
Categorías
Más información sobre Environment and Settings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!