使用合适的matlab数据时出错

时间:2014-11-10 06:13:44

标签: matlab matlab-guide matlab-uitable

我只是想从一个uitable(由GUIDE制作)中获取一些用户输入,并将此输入保存为双精度来计算另一个值并放在uitable上 所以这是代码......

% --- 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'表示'cell'类型的输入参数。

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

知道发生了什么,我只是看不出什么是错的

1 个答案:

答案 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 ArrayStore or retrieve GUI data上的文档。