Search code examples
matlabuser-interfacetype-conversioncell

Conversion to double from cell is not possible


I am using a gui and in my button click function I try to plot something, but I get the error

Error using plot
Conversion to double from cell is not possible.

I'm new to matlab, so not really sure why, I got the first value of the list that the gui gives me. The line that doesn't work is the last one.

function calc_Callback(hObject, eventdata, handles)
% hObject    handle to calc (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% blah = get(handles.calc, 'string');
set(handles.x2, 'string', 'hi');
XX1 = get(handles.x1, 'string');
YY1 = get(handles.y1, 'string');
RR1 = get(handles.r1, 'string');

XX2 = get(handles.x2, 'string');
YY2 = get(handles.y2, 'string');
RR2 = get(handles.r2, 'string');

XX3 = get(handles.x3, 'string');
YY3 = get(handles.y3, 'string');
RR3 = get(handles.r3, 'string');

% x1 = X1{1}; 
x1 = XX1;    
y1 = YY1{1}; %needed to do this because I was getting an error that said
r1 = RR1{1}; % Undefined function 'abs' for input arguments of type 'cell'.
%x2 = X2{1};
x2 = XX2;
y2 = YY2{1};
r2 = RR2{1};
x3 = XX3{1};
y3 = YY3{1};
r3 = RR3{1};

min = r1;


disp(['r1 ' num2str(min)]);
disp(['r2 ' num2str(r2)]);
if(min > r2)
    min = r2;
end
if (min > r3)
    min = r3;
end

temp = min;
min = temp/10;

disp(x1);
hold on
a = plot (x1,y1);

Solution

  • I found out why. I needed to do

    x2 = XX2{1}; 
    

    to get the first value of the array that the gui returns