How to fix this error?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi, I had facing this problem. I try to compute the GUI and it comes out this error.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/462675/image.png)
댓글 수: 0
채택된 답변
Image Analyst
2020년 12월 16일
fm is not a simple one line edit text box like you thought. In guide, you had two lines for it, so the get() call returns a cell array instead of a character array. Here, get your values in the run callback like below. I'm also attaching a fixed version of your program.
% Get the contents of the edit fields.
editFieldContents = handles.fm.String;
if isempty(editFieldContents)
warningMessage = sprintf('fm is empty. Please enter a value for it');
uiwait(warndlg(warningMessage));
return;
end
val1 = str2double(editFieldContents);
editFieldContents = handles.fc.String;
if isempty(editFieldContents)
warningMessage = sprintf('fc is empty. Please enter a value for it');
uiwait(warndlg(warningMessage));
return;
end
val2 = str2double(editFieldContents);
editFieldContents = handles.EM.String;
if isempty(editFieldContents)
warningMessage = sprintf('EM is empty. Please enter a value for it');
uiwait(warndlg(warningMessage));
return;
end
val3 = str2double(editFieldContents);
editFieldContents = handles.EC.String;
if isempty(editFieldContents)
warningMessage = sprintf('EC is empty. Please enter a value for it');
uiwait(warndlg(warningMessage));
return;
end
val4 = str2double(editFieldContents);
editFieldContents = handles.RESIS.String;
if isempty(editFieldContents)
warningMessage = sprintf('RESISTANCE is empty. Please enter a value for it');
uiwait(warndlg(warningMessage));
return;
end
val5 = str2double(editFieldContents);
추가 답변 (2개)
KSSV
2020년 12월 16일
If you want to open .fig file.
openfig('DSBSCfig.fig')
If you want to run the .m file, open it and press F5 or press the run button. Or you be in the directory where the DBSCfig.m file is present and type
DBSCfig
Cris LaPierre
2020년 12월 16일
편집: Cris LaPierre
2020년 12월 16일
In checking your gui, the issue is you have given both the label and the edit field the same tag (fm for example). So when you run the command get(handles.fm,'String'), you get the string property of both objects.
K>> get(handles.fm,'String')
ans =
2×1 cell array
{'"0"' }
{'Frequency Modulate(fc)'}
I suggest updating your tags so that no two objects use the same tag.
댓글 수: 1
Image Analyst
2020년 12월 16일
For robustness, you might assume that if it's a cell array, to get the first (or last) entry:
editFieldContents = handles.fm.String;
if iscell(editFieldContents)
% Extract first string.
editFieldContents = editFieldContents{1}; % or editFieldContents{end}; depending on what you want.
% Put that one string back into the edit field.
handles.fm.String = handles.fm.String;
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!