0

我仍在尝试在 matlab gui 中更新 uitable 的行名。我之前问过你这个问题(https://stackoverflow.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
4

1 回答 1

0

看起来setRowname 的函数需要一个字符串元胞数组,但是你给它一个元胞数组,它们本身包含字符串。这是因为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');
于 2014-02-08T00:41:02.833 回答