2014-11-10 5 views
0

Я просто пытаюсь получить некоторые пользовательские входы от uitable (сделанные с помощью GUIDE) и сохранить эти входы как удвоившиеся, чтобы вычислить другое значение и надеть нужный . Итак, вот код ...Ошибка при работе с данными uitable, matlab

% --- Executes on button press in CTE. 
function CTE_Callback(hObject, eventdata, handles) 
% hObject handle to CTE (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

DATA = get(handles.uitable2,'data'); 
for I = 1:5 
    s = DATA(1,I); 
    d = DATA(2,I); 
    u = DATA(3,I); 
    p = DATA(4,I); 
    t = DATA(5,I); 
    r = DATA(6,I); 
    c = DATA(7,I); 
    a = DATA(8,I); 

    if ((2 * s * d * u) > 0) && (((t + r) * c) + (2 * a * (1 - (u/p))) ~= 0) 
     X = ((2 * s * d * u)^(1/2))/((((t + r) * c) + 2 * a * (1 - (u/p)))^(1/2)); 
    else 
     disp('error,ingrese unicamente numeros positivos'); 
    end 

    DATA(9,I) = X; 
end 
set(handles.uitable2, 'data', DATA); 

, но я получаю эту ошибку ...

неопределенные функции «mtimes» для входных аргументов типа «клетка».

Error in GuiFinal>CTE_Callback (line 133) 
    if ((2 * s * d * u) > 0) && (((t + r) * c) + (2 * a * (1 - (u/p))) ~= 0) 

Любая идея о том, что происходит, я просто не понимаю, что это неправильно

ответ

0

Похоже DATA массив ячеек. Вы, вероятно, нужно индексировать его в фигурные скобки:

s = DATA{1,I}; 
d = DATA{2,I}; 
u = DATA{3,I}; 
p = DATA{4,I}; 
t = DATA{5,I}; 
r = DATA{6,I}; 
c = DATA{7,I}; 
a = DATA{8,I}; 

, а затем позже:

DATA{9,I} = X; 

и в конце функции, я бы

guidata(hObject,handles) 

Для получения более подробной информации , см. документ на Access Data in a Cell Array и Store or retrieve GUI data.

+0

Это работает ... Спасибо, человек –

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