필터 지우기
필터 지우기

How to fix this error?

조회 수: 1 (최근 30일)
wyeen chow
wyeen chow 2020년 12월 16일
편집: Cris LaPierre 2020년 12월 16일
Hi, I had facing this problem. I try to compute the GUI and it comes out this error.

채택된 답변

Image Analyst
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);
  댓글 수: 1
wyeen chow
wyeen chow 2020년 12월 16일
Thank you sir ! It works.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

KSSV
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
  댓글 수: 1
wyeen chow
wyeen chow 2020년 12월 16일
I see. Thank you sir!

댓글을 달려면 로그인하십시오.


Cris LaPierre
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
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 CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by