2015-04-08 4 views
0

Я получаю индекс строки выбранной ячейки с этим кодом:UITable Matlab - Доступ к конкретной ячейке

row = eventdata.Indices(1); 

Я также могу получить индекс столбца, изменяя 1 до 2. Но я хочу, чтобы иметь возможность чтобы получить содержимое любой ячейки, которую я хочу в этой конкретной строке, без того, чтобы пользователь фактически нажал на эту конкретную ячейку, но в любом месте этой строки. Предположим, я хочу получить данные из первого столбца, который в моем случае представляет идентификатор.

В псевдокоде это будет выглядеть следующим образом:

x = getRowOfSelectedCell 
field = Indices(x,1); 

Say выбранная строка 5. поле переменной будет состоять из значения ячейки в первом столбце в строке 5.

Любой идеи, как действовать?

ответ

1

насчет:

function ScriptTest 

d = rand(10,7); 
t = uitable('Data', d, 'Units', 'norm', 'Position', [0,0,1,1]); 

RequiredColumnIndex = 5; 
set(t, 'CellSelectionCallback', {@TableSelectionCB, RequiredColumnIndex}); 

function TableSelectionCB(hTable, eventdata, RequiredColumnIndex) 
    rowIndex = eventdata.Indices(1); 
    TableData = get(hTable,'Data'); 

    field = TableData(rowIndex, RequiredColumnIndex); 
    fprintf(' Value in cell [Row %d /Col %d ] is %f \n', rowIndex, RequiredColumnIndex, field); 
end 

end 

Здесь я решил восстановить данные в графе 5 (как вы предложили) и распечатать соответствующее значение ячейки в окне командной строки.

+0

Спасибо, это сработало для меня :) –

Смежные вопросы