matlab a1处语法无效,MATLAB常见错误

1. 在GUI子程序的OpeningFcn函数的结尾加上uiwait(handles.figure1); figure1是subGUI的Tag;

2. subGUI中控制程序结束(如"OK"和"Cancel"按钮)的callback末尾加上uiresume(handles.figure1),不要将delete命令放在这些callback中;

3. 在子GUI的OutputFcn中设置要传递出去的参数,如 varargout{1} = handles.out1;varargout{2} = handles.out2;末尾添加delete(handles.figure1); 结束程序。

在GUI的OpenFcn中,如果不加uiwait,程序会直接运行到下面,执行OutputFcn。也就是说程序一运行,返回值就确定了,再在其它部分对handles.output作更改也没有效果了。

加上uiwait后,只有执行了uiresume后,才会继续执行到OutputFcn,在此之前用户有充分的时间设置返回值。

通过以上设置以后,就可以通过 [out1, out2] = subGUI(in1, in2) 的形式调用该子程序。

在一个GUI中调用另一个GUI时,主GUI不需要特别的设置,同调用普通的函数一样。在打开子GUI界面的同时,主程序还可以响应其它的控件。不需要担心子GUI的返回值被传错了地方。

44、Matlab保存axes上的图的问题(包括坐标轴)

做了一个按钮"保存",可以另存为画在axes上的图,保存为jpg格式,参考了论坛里的帖子,写了代码,可是保存的图片是空的,什么都没有,请问是哪里的问题?保存的图片如何才能包括axes的坐标轴?

代码:

function m_file_save1_Callback(hObject, eventdata, handles)

% hObject handle to m_file_save1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

axes(handles.axes1); %取得axes1的句柄

if isempty(handles.axes1)

return;

end

newFig = figure;%由于直接保存axes1上的图像有困难,所以保存在新建的figure中的谱图

set(newFig,'Visible','off')%设置新建的figure为不可见

newAxes = copyobj(handles.axes1,newFig); %将axes1中的图复制到新建的figure中

set(newAxes,'Units','default','Position','default'); % 设置图显示的位置

[filename,pathname] = uiputfile({ '*.jpg','figure type(*.jpg)'}, '保存原始波形');

if isequal(filename,0)||isequal(pathname,0)%如果用户选择"取消",则退出

return;

else

fpath=fullfile(pathname,filename);

end

imwrite(newFig,fpath);%保存图片

问题解决:

你提出的问题很有特点,但是代码中imwrite写出的是figure德handle,按理说是应该没有图像的;

你可以采用:

f = getframe(gcf);

f = frame2im(f);

imwrite(f, fpath);

代码:

axes(handles.axes1); %取得axes1的句柄

if isempty(handles.axes1)

return;

end

newFig = figure;%由于直接保存axes1上的图像有困难,所以保存在新建的figure中的谱图

set(newFig,'Visible','off')%设置新建的figure为不可见

newAxes = copyobj(handles.axes1,newFig); %将axes1中的图复制到新建的figure中

你可能感兴趣的:(matlab,a1处语法无效)