Modified but still get errors. Is it more clear to help me?

조회 수: 1 (최근 30일)
Stelios Fanourakis
Stelios Fanourakis 2019년 2월 10일
댓글: Walter Roberson 2019년 2월 11일
Hi
I just modified the code I am trying to use in order to select one out of two images. I use that code
MyMatrix = Img;
setappdata(gcf, 'MyMatrix', MyMatrix);
handles.axes1 = subplot(1,2,1);
handles.axes2 = subplot(1,2,2);
axes(handles.axes1)
handles.r1 = uicontrol('Style',...
'radiobutton',...
'String','Option 1',...
'Position',[10 350 100 30],...
'Value',croppedImage,'Callback',@XRadiobuttonCallback);
axes(handles.axes2)
handles.r2 = uicontrol('Style','radiobutton',...
'String','Option 2',...
'Position',[10 250 100 30],...
'Value',J,'Callback',@XRadiobuttonCallback);
guidata(gcf,handles);
And at the end of the script I use the Callback fcn
function XRadiobuttonCallback(~,~)
handles = guidata(gcf);
%// Here retrieve MyMatrix using getappdata.
MyMatrix = getappdata(gcf, 'MyMatrix');
idx = round((get(handles.r1, 'Value')));
idx2 = round((get(handles.r2, 'Value')));
set(handles.Edit1,'String',num2str(idx));
set(handles.r1,'Value',idx);
set(handles.r2,'Value',idx2);
subplot(1,2,1)
image(handles.axes1, croppedImage(:,:,idx))
imshow(squeeze(croppedImage(:,:,idx,:)))
subplot(1,2,2)
image(handles.axes2, J(:,:,idx2));
imshow(squeeze(J(:,:,idx2,:)),'XData',[1 592], 'YData',[1 481])
guidata(gcf,handles);
drawnow()
end
But I still get the error
Error using uicontrol
This is not a valid UIControlValue value. The input must have 1 rows.
Error in ruller (line 136)
handles.r1 = uicontrol('Style',...
>>
What is this error? Can you help me please?

답변 (1개)

Geoff Hayes
Geoff Hayes 2019년 2월 11일
Stelios - please look at this code
handles.r1 = uicontrol('Style',...
'radiobutton',...
'String','Option 1',...
'Position',[10 350 100 30],...
'Value',croppedImage,'Callback',@XRadiobuttonCallback);
Why are you setting the Value to be a cropped image (if that is what croppedImage is)? Wouldn't Value be 0 or 1 for the button to be toggled off or on respectively? I think that those two value are the only appropriate ones for this property...
  댓글 수: 1
Walter Roberson
Walter Roberson 2019년 2월 11일
The Value associated with a uicontrol style 'radiobutton' or 'pushbutton' or 'togglebutton' or 'checkbox' must be empty or equal to either the 'Min' or 'Max' property of the uicontrol. Value equal to the 'Min' indicates that the button is not (currently) pushed or selected; Value equal to the 'Max' indicates that the button is currently pushed or selected.
The Value associated with a uicontrol style 'listbox' or 'popupmenu' must be empty or an integer from 1 to the number of entries in the uicontrol 'String' property.
The Value associated with a uicontrol style 'slider' must be between the 'Min' and 'Max' property of the uicontrol and indicates the location of the slider within the range.
The Value associated with a uicontrol style 'edit' can be fairly arbitrary, but if the value is <= 1 then the edit box will only support one line of input, and value > 1 then the edit box will support multiple lines of input.
The Value associated with a uicontrol style 'text' or 'frame' has no meaning.

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

카테고리

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