Making a matlab GUI. Display all values taken from an iterative loop on a static Text
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Adam
2018-1-30
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.
采纳的回答
Jan
2018-1-30
编辑:Jan
2018-1-30
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 个评论
Muhamad Luqman Mohd Nasir
2021-6-21
@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
2021-6-21
Please do not advertise questions in comments of other questions. Imagine the clutter, if every user does this.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!