我只是想从一个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)
知道发生了什么,我只是看不出什么是错的
答案 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上的文档。