У меня есть класс вроде этого. Я хочу динамически добавлять и удалять строки по мере необходимости. Метод AddRow
не работает. Не знаете, как это сделать.Добавьте строку с именем динамически в Matlab uitable
Используя следующий код, я вижу, что строка данных добавляется, но имя не отображается. Я делаю это неправильно или возможно, что имя есть, но столбец не виден?
classdef BidAskDisplay < handle
properties
f
ut
myhandles
end
methods
function self = BidAskDisplay(name, colNames)
self.CreateBidAskDisplay(name, colNames);
end
function CreateBidAskDisplay(self, name, colNames)
% Example quote display
% Copyright 2015 The MathWorks, Inc.
self.f = figure;
self.f.Name = name;
self.ut = uitable(self.f, 'ColumnName', colNames, 'RowName',[]);
self.ut.Units = 'normalized';
self.ut.ColumnWidth = {150};
self.ut.Position(3) = self.ut.Extent(3);
self.ut.Position(4) = 0.9;
self.ut.Data = repmat({'NaN'},0 ,3);
self.myhandles = guidata(self.ut);
end
function AddRow(self, rowName)
data = get(self.myhandles, 'Data');
newRowdata = cat(1, data, cell(1, size(data, 2)));
set(self.ut, 'Data', newRowdata)
k = size(data, 1) + 1; % Which row number does the new row get
rnames = get(self.myhandles, 'RowName');
rnames{k, 1} = rowName;
set(self.myhandles, 'RowName', rnames);
end
end
end
сделать свой класс а 'handle' класс, иначе вы должны вызвать что-то вроде' OBJ = obj.AddRow' для класса значения – scmg
Спасибо Я сделал это изменение. Если вы не возражаете, я очень новичок в Matlab. Не знаете, как добавить новую строку? – Ivan