Bir kullanıcının bir değişken, girdi, denklemi girme ve alt ve üst limitleri ile entegre etmek için bir değişken seçtiği bir matlab GUI yarattım. Kodum pushbutton Callback üzerindeki integrali hesaplamaya gittiğinde, anlamadığım bir hata alıyorum.MatLab GUI Sorunları: Bir İntegral hesaplanıyor
Bu hataya neden kod satırı:
i1 = int(eval(get(handles.edit1,'string')),
(handles.respectvar),
get(handles.edit3),
get(handles.edit2)
);
%respactvar is the user-selected variable, and edit3 and edit2 are the lower and upper limits.
Ve bu hata iletisi:
Error using sym>tomupad (line 1135) Conversion to 'sym' from 'struct' is not possible.
Error in sym (line 151) S.s = tomupad(x);
Error in sym/int (line 142) b = sym(b);
Error in projectCALC>pushbutton1_Callback (line 376) i1=int(eval(get(handles.edit1,'string')),(handles.respectvar),get(handles.edit3),get(handles.edit2));
Error in gui_mainfcn (line 95) feval(varargin{:});
Error in projectCALC (line 42) gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)projectCALC('pushbutton1_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback
teşekkür ederiz!
Tümleştirme sınırlarınızı içeren düzenleme kutularından dizeleri almanız ve bunları sayısal veri türüne dönüştürmeniz gerekir. '(Kolları almak.edit3) 'sadece nesnenin özelliklerinin bir yapısını döndürür. – excaza
Ayrıca, “eval” kullanımı etkisiz ve * güvenli olmayan *, özellikle de kullanıcının kutuya girdiği bir şeyi değerlendiriyorsanız. Ya bir "sistem" çağrısı ise? "Eval" kullanmanın önüne geçemeyeceğinizden emin misiniz? –
@AndrasDeak Bu, güvenlik konusunu ele almasa da, bu tür şeyler için "eval" etrafında bir yol olduğunu düşünmüyorum. Neredeyse pozitif 'str2func' sadece 'eval' için bir sarıcı ama kontrol etmek için MATLAB'ım yok. – excaza