Продолжать добавлять элементы в список - PullRequest
0 голосов
/ 27 марта 2019

Я использую listbox для отображения сообщений и журналов моей программы. Чтобы добавить строки во время работы программы, я определил глобальный индекс, такой как

function pushbutton_Callback(hObject, eventdata, handles)
global idx
%stuff
idx = idx + 1;
logs_data(idx,1) = cellstr('First string');
set(handles.logs, 'String', logs_data); %Listbox
%other stuff

Используя global, я подумал, что на первой итерации (когда я нажимаю кнопку в первый раз), idx - это пустая ячейка, которую я инициализирую как 1. Я написал строку, а затем, если я снова нажму кнопку, idx становится 2, добавляя новую строку ниже предыдущей. Единственная проблема заключается в том, что когда я это делаю, массив logs_data становится вектором с пустыми ячейками, кроме той, которая была добавлена ​​в настоящее время.

Например, если я нажму кнопку 5 раз, я хочу получить logs_data массив 5x1 с внутренними строками

Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5

но я получаю это вместо

[]
[]
[]
[]
Iteration 5

Как я могу решить это? В другом случае я мог бы использовать for цикл с увеличением idx, но, поскольку здесь я нахожусь внутри кнопки Callback, я не могу использовать это решение.

...