-1
function listbox1_Callback(hObject, eventdata, handles)

index_selected = get(hObject,'Value');
list = get(hObject,'String');
item_selected = list{index_selected}; % Convert from cell array % to string
 disp(item_selected);
 textdata=xlsread('stringipdata.xlsx');
 GetColumnC(handles, textdata);




function listbox2_Callback(hObject, eventdata, handles)
index_selected = get(hObject,'Value');
list = get(hObject,'String');
item_selected2 = list{index_selected}; % Convert from cell array
                                      % to string
disp(item_selected2);
 textdata=xlsread('stringipdata.xlsx');
GetColumnC(handles, textdata);




function itemFromColumnC = GetColumnC(handles, textdata)


itemFromColumnC = []; % Initialize to null

% Get the item number that they selected.
selected1 = get(handles.listbox1, 'value');
selected2 = get(handles.listbox2, 'value');


% Get the contents (optional - just FYI in case you want to inspect)
items1 = get(handles.listbox1, 'String');
items2 = get(handles.listbox2, 'String');
% Get the selected item (optional - just FYI in case you want to inspect)
selectedItem1 = items1{selected1};
selectedItem2 = items2{selected2};


% Now compare
if selected1 == selected2 
  % All indexes are the same so extract column C at that row.

itemFromColumnC = textdata{selected1, 3};
  disp(itemFromColumnC);

end

Error is:

??? Cell contents reference from a non-cell array object.

Error in ==> stringdata>GetColumnC at 188 itemFromColumnC = textdata{selected1, 3};

  • cell values are strings
  • I want to display the 3rd column cell value as the output.
4

1 に答える 1

2

の最初の出力xlsreadは通常の (double) 配列です。3 番目の出力は、xls のすべての内容を含む cell 配列です。次のように呼び出す必要があります。

[t1, t2, textdata] = xlsread('stringipdata.xlsx'); % or replace t1 and t2 by ~ 
于 2013-09-30T07:33:00.363 に答える