0

我只是想从 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);

但我收到了这个错误......

'cell' 类型的输入参数的未定义函数 'mtimes'。

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

任何想法发生了什么,我只是不知道有什么问题

4

1 回答 1

1

它看起来像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)

有关更多详细信息,请参阅访问元胞数组中的数据存储或检索 GUI 数据的文档。

于 2014-11-10T09:44:58.823 回答