0

uitable (GUIDE で作成) からいくつかのユーザー入力を取得し、この入力を double として保存して別の値を計算し、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 に答える