Все еще застрял, пытаясь обновить строки имя Uitable в Matlab GUI

Я все еще пытаюсь обновить имена строк в пользовательском интерфейсе Matlab. Ранее я спрашивал вас об этом ( https://stackru.com/questions/21585453/update-rows-name-of-uitable-in-matlab-gui). Тем не менее, я пишу вам снова, чтобы вы знали, что я не могу решить эту проблему.

Это часть моего кода, где я застрял:

function SavePushButton_Callback(~,~)

%%##
data{1,1}= get(h5Out,'string');
data{1,2}= get(h6Out,'string');
data{1,3}= get(h7Out,'string');
data{1,4}= get(h8Out,'string');

===============================
% Update the data %
oldData = get(t,'Data');
newRow =  cat(0,data,cell(0,size(data,2)));
newData2 = [oldData; newRow];
set(t,'Data',newData2);

===============================
% this part of the code should Update the name of the rows %
rowname = get(h1Out,'string');
NewRowName = cat(0,rowname,cell(0,size(rowname,1)));
rowname2= [rowname; NewRowName];
set(t,'Rowname',rowname2);

end

1 ответ

Похоже, функция для set Rowname ожидает массив ячеек строк, однако вы предоставляете ему массив ячеек, которые сами содержат строки. Это потому что get функция (например, data{1,1}= get(h5Out,'string');) уже возвращает массив ячеек, содержащий строку, и вы храните ее в другом массиве ячеек (data). Используйте () вместо {} на data матрица для объединения отдельных ячеек в одну ячейку матрицы. Другими словами, измените:

data{1,1}= get(h5Out,'string');
data{1,2}= get(h6Out,'string');
data{1,3}= get(h7Out,'string');
data{1,4}= get(h8Out,'string');

чтобы:

data(1,1)= get(h5Out,'string');
data(1,2)= get(h6Out,'string');
data(1,3)= get(h7Out,'string');
data(1,4)= get(h8Out,'string');
Другие вопросы по тегам