Matlab GUI 编程pdf免费版高清版

编辑点评:MATLAB 中文论坛相关帖子整理

Matlab现在的应用非常的广泛,特别是GUI编程,这里特意分享根据MATLAB 中文论坛相关帖子整理打造的一本Matlab GUI 编程pdf电子版书籍,需要的可以免费下载体验哟。

Matlab GUI 编程pdf免费版图片预览

目录大全

1、GUI新手之――教你读懂GUI的M文件... 10

2、GUI程序中改变current directory引起的问题... 15

3、GUI中h0bject和handles 的区别... 16

4、handles结构中句柄和对象的关联问题... 17

5、Matlab利用定时器连续显示图片的问题... 19

5-1、GUI中实现在图片任意位置上标注text. 22

5-2、使用edit的另外一种callback. 22

6、MATLAB 如何实现图像的任意裁减?... 22

7、坐标轴标注刻度、网格、文字方向... 23

8、Matlab中对uitable的操作:调节各列宽度,设定某列是可编辑的... 24

9、将在Matlab下编写的GUI转成独立于Matlab平台的应用程序... 25

10、要将用Matlab语言编写的函数文件编译成可独立执行的*.exe文件... 28

11、matlab GUI程序转换成exe可执行文件... 31

12、gui生成独立的应用程序的发布问题... 33

13、GUI控制simulink模块及参数的综合实例!... 34

13-1、在axes显示图像后,在图像上单击鼠标时,回调函数的定义规则和使用方法... 35

14、如何在循环中加入waitbar,并在waitbar上添加‘取消’按钮... 36

15、在matlab中对信号进行FFT变换... 38

16、动态显示figure中曲线的x-y坐标值的一个函数... 40

17、在GUI界面的打开按钮中,如何对文件进行操作... 42

18、Matlab不同控件之间的数据传递问题... 45

19、在edit box里输入相关数据后,直接按回车键,不用鼠标点击pushbutton 就可以直接执行... 46

19-1 GUI使用editbox输入数据后如何自动清除数据... 46

20、在GUI中,计算结果怎么用excel来保存到指定的文件夹中... 47

21、如何得到popupmenu选项中最后一个字符串的VALUE值... 49

22、回调函数互相调用的问题... 49

22-2string和number相互转换的问题... 50

23、这样的功能的pushbutton的callback怎么写呀,谢谢了... 50

24、GUI中axes使用subplot时的清空及axes大小的固定的解决方法... 51

25、退出GUI时如何把全局变量中的值清空?... 53

26、从串口接受数据时,如何把波形绘制到指定的坐标轴上?... 53

27、两个GUI之间如何传递数据... 55

28-1 几个有用的帖子... 57

28-2、GUI之间互相调用和关闭问题... 60

29、GUI timer定时器... 60

30、如何在循环中加入waitbar. 61

31、如何连续读入图片!!... 62

32、如何把此次输入的值保存为下一次初始化的值... 63

33、Matlab关于解决自动保存gcf的问题... 63

34-1、在matlab里面如何读取excel里面的数据或者写入数据... 65

34-2、在excel中连续输入数据。... 66

35、Matlab GUI不同控件之间的数据传递问题... 68

36、怎么统计一个十进制数中"0"的个数??求助!... 69

37、Matlab对listbox里的条目能否一条条单独设置回调函数?. 70

38、键盘操作:matlab GUI中如何取得从键盘输入的按键的键值... 72

39、GUI如何响应鼠标事件... 73

40、matlab 截图、图像处理... 76

41、MATLAB GUI中利用定时器制作动画 - [MATLAB]. 84

42、MATLAB如何从GUI中返回参数 - [MATLAB]. 86

43、MATLAB 中GUI子程序的参数传递 - [MATLAB]. 87

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

45、Matlab鼠标控制的两个GUI例子(附代码)... 91

46、分享初学的一个GUI例子--新手好好看看(图)... 97

47、axes清除��面... 113

48、GUI中调用自己制作的帮助文件... 114

49、关于从gui调用simulink. 114

50、如何将菜单中退出项和窗口关闭的回调函数合并?... 117

51、matlab 日历程序... 119

52、如何在GUI里得一个axes实现双Y坐标轴... 121

53、如何实现动态的GUI界面... 121

54、关于GUI和simulink参数传递和执行... 122

55、代码运行时间的计时方法... 134

56、如何在GUI指定的axes中再画一个axes. 135

57、按下鼠标左键并拖动鼠标时的作图方法... 136

58、图像处理相关资料... 137

59、保存axes坐标轴上画的曲线或图形... 140

60、在GUI中如何打开IE. 141

61、gui输入数据,通过rs232传给芯片... 141

62、Matlab关于gui和excel的问题... 142

63、matlab 如何显示数学公式... 145

64、修改matlab自带的tabdlg的字体和颜色... 148

65、求助 Matlab的RGB彩色图合成... 148

66、如何删除已绘制的曲线?... 149

67、总结一下,MATLAB中随机矩阵获得... 150

68、【原创】GUI设计中背景音乐的定制与关闭... 153

69、Matlab如何改变GRID 网格线的颜色?... 156

71、把plot图上的某些曲线排除在lengend之外,即不用legend标注出来... 157

72、如何连续对矩阵追加数值... 158

73、两个等直径圆管的交线... 160

74、Matlab的csvread读取数据的问题... 161

75、在对数坐标系插值的问题... 162

76、实现在原有图像上的部分图像变为白色... 162

78、如何实现双击listbox中的条目才表示选中... 163

79、如何删除矩阵中的NaN. 164

80、用平行截面法讨论由曲面z=x^2-y^2构成的马鞍面形状。... 164

81、如何利用ode45解方程... 165

82、Matlab图片如何批处理?pic变量逐一读取文件夹所有图片名... 165

83、方程为:exp(-x)=cos(x),用迭代法求出最小的正根,当相对误差<=10e-6时,求根结束。... 166

84、通过鼠标点击控制循环... 166

85、图像经连续小波分解后的显示效果图... 167

85-1、怎样查看图像的属性... 169

86、想产生如下的矩阵:6行10列,每行都是1 2 3 4 5 6 7 8 9 10。... 169

87、textread读取.txt中数据... 169

88、数制之间的转换怎么实现... 170

89、matlab读取大数据文件的方法... 172

90、从状态空间方程转换为传递函数... 174

91、生成0 1 2 3 4 5 6 7 8 随机出现大小为20X20的矩阵!... 174

92、存储绘图过程,并播放视频... 175

93、如何同时读入多个文件,并作图?... 175

94、MATLAB GUI编程中几个有用的程序段... 177

95、Matlab如何在给定区域随机取点?... 180

96、数据如何导入到workspace中,并执行?在GUI里面,怎么传递处理。... 180

97、matlab下画‘心’的程序。... 181

98、点到直线的距离怎么求?... 181

99、如何绘制正态分布图?... 185

100、matlab作图时,如何只保存图像而不显示图像... 185

101、在三维图中只显示x,y轴,不显示z轴... 186

102、cell array和矩阵的显示... 186

103、矩阵形式的转换... 188

104、如何判断鼠标是否在figure内的某一区域?... 189

105、一个有用的程序... 189

106、窗口的最大化、最小化、图标、置顶... 191

107、连续生成文件名的问题... 193

108、编辑框edit中输入公式后的绘图问题... 194

109、MATLAB中plot命令绘图微调的几个注记 (转自职业仓库)... 195

110、MATlab 三维图中显示z坐标轴的极大极小值... 203

111、如何一次性清空GUI程序的handles结构中的变量... 203

112、Matlab如何给元胞中的每个一维向量前增加同一个数?... 204

113、用guide生成的不同GUI之间控件的互相操作... 206

114、自定义Matlab figure 工具栏按钮... 208

115、matlab 有没有按某个小数位数做四舍五入的函数?... 209

116、有关矩阵中小于某值的数取整的问题... 209

117、Matlab表面被截后的部分... 210

118、如何是imshow显示的图像充满整个figure?... 211

119、图像颜色统计直方图... 211

120、Matlab如何将大元胞数组写入到txt文件... 212

121、构造特殊矩阵(右螺线状的)... 213

122、figure中多坐标轴中曲线的legend标注... 214

123、GUI中鼠标选中并显示曲线的类型及坐标... 215

124、Matlab中y=1x围绕y轴旋转形成的旋转曲面... 218

125、GUI程序一开始以‘最大化’显示的问题... 219

126、如何实现文本自动转换... 219

内容摘要

1、GUI新手之――教你读懂GUI的M文件

GUIDE生成的GUI的M文件控制了你编制的GUI界面的所有属性和行为,或者说外观和对用户操作的响应。比如说按下一个按钮或者选择了一个菜单项之类。M文件包括了运行你整个界面程序所需要的全部代码,包括所有GUI组件的CALLBACKS函数。其实这些callbacks函数算是M文件里的子程序,callback里面就填写你所期望程序做的动作,比如画一个图或者算一个算式。

插入,关于什么是子程序懂的人跳过^_^

function [avg, med] = newstats(u) % Primary function

% NEWSTATS Find mean and median with internal functions.

n = length(u);

avg = mean(u, n);

med = median(u, n);

function a = mean(v, n)% Subfunction

% Calculate average.

a = sum(v)/n;

function m = median(v, n)% Subfunction

% Calculate median.

w = sort(v);

if rem(n, 2) == 1

m = w((n+1) / 2);

else

m = (w(n/2) + w(n/2+1)) / 2;

end

以上就是一个大的程序function nestats,它下面另外包含了两个小的function mean和median,这样在大程序的里面就可以以如上的方式调用它们了。子程序的好处在于如果你总是要重复用到一组计算方式的时候,那你就把这组重复计算方式类似以上的方法编写成一个子程序,避免大量重复代码。在M文件里面,会看到最外层,也就是最上面那一一行

function varargout = setfire(varargin)   

(setfire是我m文件存的名字)就是那个大程序框,它下面有很多小function 比如什么什么creatFcn或者什么callback之类。看上去那个复杂,其实就跟上面这个一样的道理。只不过是M文件的类似avg = mean(u, n);med = median(u, n);这两句话系统隐藏(就当它是隐藏好了)起来了,它会在你点击鼠标(或者响应操作)时候自动去调用执行一次callback函数。所以你只用管把代码写入响应的函数名下就行了。至于系统为什么会自动调用,我们不用管,我们只用知道,我点击鼠标,我拖动滑竿时,系统会执行哪里的代码。就够了。

1、M文件的数据管理模式 

Sharing Data with the Handles Structure :用handles这个东西共享数据

在你运行你的GUI的时候,M文件会自动生成一个叫做handles的东西(准确的说它属于handles 类型的结构体,且取的名字也叫做handles),不用管那么复杂,只用知道你可以从它这里找到GUI的所有数据,比如说控件的信息,菜单信息,axes信息。想象handles就是一个缸了,它里面装载了所有的信息,而且这个缸在各个控件的callback之间传来传去,理所当然那每个控件的callback都可以放入一些想放入的数据,也可以从里面取出任何想要的数据包括别的控件的信息(比如滑竿的当前值,edit text的当前值)和别的控件放进去的数据。

所以,用handles可以达到的目的有两个:

a,各个控件的callback的信息交换

(current_data是随便设置的变量名)

handles.current_data = X; 在某控件下的callback写入这一句,就表示你把这个数据放缸里了

guidata(hObject,handles);接着别忘了保存~!

然后在你需要的地方把它从缸里捞出来

X1 = handles.current_data;

b,读取GUI控件的信息,自然也可以设置GUI控件的信息(比如说背景色随着按钮点击而变换之类,或者你想让按钮A点一下,字符B跳一下,也行。)

all_choices是随便取的变量名,my_menu是你那个菜单项的TAG名字 

all_choices = get(handles.my_menu, 'String');

current_choice = all_choices{get(handles.my_menu, 'Value')};

这样current_choice就得到了用户界面操作中,目录或者菜单的选择结果。

所以,要什么信息,直接用handles.你的对象 就行了。

存什么信息也直接handles.你的对象  就行了。

如果是自己的数据,就.变量名;如果是控件信息,就用get set

2、M-File里的各个函数代表什么意思 

在设计面板设计排列好自己需要的各种按钮或者编辑框之后,下一步任务便是添加自己的响应代码。

Opening function  添加在它名下的代码,在GUI开始运行但是还不可见的时候执行。这里的代码一般都是做一些初始化工作的。

Output function  如果有需要,可以向命令行输出数据。(这个函数我没用过,不多说了^_^)

Callbacks   每一次点击按钮或者向输入框输入数据或者拖动滑竿,这些控件名下的callback就会执行一次。

函数的输入参数

M-File名下的全部function都会有这两个输入参数

hObject  它代表的是当前的这个控件(也就是你点哪一个按钮或者拖的哪一个滑竿)

handles  它代表的是现在这整一个GUI界面

对这两个变量进行修改后

guidata(hObject, handles);   进行保存,否则修改无效;P

3、Opnning Function

这个函数名下的代码 在界面可见之前执行。其实你也可以在这个函数名下用handles.什么tag 来获得组件的信息。因为在Opnning函数之前,所有的组件就已经生成了,只不过openning函数是把这些组件‘打开’,让它们显示出来。所以你可以在这个函数下面,添加代码,对界面做一些初始化工作。比如,计算一些数据,显示一幅图或者别的什么工作。

function my_gui_OpeningFcn(hObject, eventdata, handles, varargin)

另外两个输入参数eventdata是matlab的保留参数,为以后开发准备的,我们不用管它。varargin 它里面保存了,传进来的命令行。

varargin怎么理解呢?

-------------    

my_gui('Position', [71.8 44.9 74.8 19.7]) 

%GUI也是函数,它只不过是有个界面的函数。它的调用,同样是 函数名(输入参数)。

这里就表示GUI在打开时,位置这个属性被设置成了右边那个值。也就是在这个位置打开GUI。Position是你GUI界面的一个属性。(要想知道各个控件有什么属性,在它上面双击就看到了。)所以同样,也可以用这种方式输入其他的初始化命令。

my_gui('路人甲','年十八')

但如果你输入别的,左边那个根本就不是界面的属性名称。这是输入的参数就保存在varargin里面。也就是 vararging{1}='路人甲' vararging{2}='年十八'。

这样也可以达到向调用的GUI传入数据的目的。

4、Output Function

Output function    有输入自然就有输出,顾名思义,这个函数就是用来输出的。

function varargout = my_gui_OutputFcn(hObject, eventdata, handles)

% Get default command line output from handles structure

varargout{1} = handles.output; 

这个函数不是我们自己编写的,也不是我们负责调用。我们只用知道要传出去的数据,其实是放在vararout这个变量里面的。但是我们在别的控件的callback是叫不到vararout这个变量的,因为你去看这些callback的输入参数里并没有vararout这个变量给它用。所以我们只能间接修改handles.output这个变量。(当然在后面别忘了添加guidata(hObject, handles);保存修改) 

因为默认的output函数里面varargout{1}=handles.output,也就是修改了vararout。

(所以知道了原理,output只是一个名字而已,你也可以用任意别的名字,或者添加更多的输出变量,只要在outputFcn下面添加 varargout{2}=handles.第二个变量名 。。。。类似) 

guidata(hObject, handles)之后不要立即delete窗口命令,因为这时候outputfcn没有再执行一次,也就是你刚刚修改的output并没有更新到varargin里面去。    所以要么单独设计一个关闭按钮;要么跟uiwait(handles.figure1);uiresume合用。

5、Callbacks回调函数 

当你对组件做点击或者别的动作,则自动调用相应的callback。callback的名字取决于你的控件的tag和控件类型以及响应类型。

function print_button_Callback(hObject, eventdata, handles)

2、GUI程序中改变current directory引起的问题

fig和m文件和见下,主要是用来导入数据(用于导入两个文件夹中的txt文件,每个txt有两列,第一列时间,第二列电压),运行后发现只能点击一个pushbutton,当点击第二个时会出现以下错误:

??? Undefined function or method 'fenbianlv1' for input arguments of type 'struct'. Error in ==> @(hObject,eventdata)fenbianlv1('pushbutton2_Callback',hObject,eventdata,guidata(hObject)) ??? Error while evaluating uicontrol Callback 

应该是某个地方设置的问题。pushbutton里面的函数体好像没问题。就算在第二个函数体里面只编写一个很简单的赋值语句也会出现同样的错误,调试发现点击第二个pushbutton时根本没有进入到这个函数体内。好像是点击了一个pushbutton后再点击第二个pushbutton它就找不到这第二个pushbutton的callback函数了。但如果两个pushbutton都编写简单的赋值语句发现没有错误,说明第一个pushbutton的callback函数体代码对第二个pushbutton的callback调用产生了影响,但是是什么地方影响了一直发现不了。

解决办法: 

是在pushbutton1和pushbutton2的回调函数里用cd(dataRoute)把matlab的current directory的路径给改了,数据读取完成后,没有恢复到原先的路径,导致程序出错。

读取数据前先保存原先的路径:

oldpath=cd;

数据读完后再恢复原先的路径:

cd(oldpath);

修改后的程序见实例程序:fenbianlv1.

3、GUI中h0bject和handles 的区别

刚学GUI,举个例子,就是Pop_up Menus吧,他的回调函数是这样的:

function=pushbutton1_Callback(hObject, eventdata, handles)

然后我想问的是:Val=get(h0bject,'Value')和Val=get(handles.pushbutton1,'Value');这两个的值是一样的吗,如果是一样的,那h0bject和handles在使用时有什么区别?

答: 

在MATLAB GUI中,数据分两种:GUI data和application data。 两种数据的存取机制是相同的,但是GUI data使用起来比较方便。

每一个GUI 图形界面都维持一个和自己的界面的图形(figure)相联系的一个handles数据结构,这个数据结构中容纳图形界面内所有控件(按钮、列表框、编辑框等)的句柄,相当于一个大的“容器”,里面存放了figure内所有控件的句柄。同时,handles结构也可以被figure内所有控件的回调函数访问,因为回调函数的输入参数中都有handles结构。此外,在控件的回调函数内可以把数据存储到handles结构中。

handles结构数据的取得和存储是通过guidata函数来实现的。 

例如:在编辑框edi的回调函数内想获得t编辑框的句柄,hObject可以,也可以用handles.edit,这两个值是一样的,没有区别,只不过获得控件句柄的方式不同而已:hObject是调用回调函数时直接传过来的,handles.edit是从handles结构中取得的。但是,在控件的CreateFcn函数中如果想访问控件,必须用hObject,而不能用handles.edit,因为这时控件还没被创建,其句柄还没有加入到handles结构中。

各控件的回调函数中,hObject的值是不一样的,分别代表调用回调函数的控件的句柄,而handles结构却是一样的。这种机制便于figure内的不同控件的回调函数内传递数据。

4、handles结构中句柄和对象的关联问题

1、问题1: 

>> handles.axes1=axes('tag','tag1');

delete(handles.axes1);handles

handles = 

axes1: 0.027

figure中的坐标轴已经被删除了,

但是为什么handles.axes还存在?

还有运行下面出错:

>> get(handles.axes,'tag')

??? Reference to non-existent field 'axes'.

问题症结: 

delete(handles.axes1)是删除了和handles.axes1句柄相关联的对象,但是handles结构没有清空,其中仍然有axes1句柄的数值。只是这个句柄已经失效了,因为没有对象和它关联了。所以,你再用get或set想获得或设置对象的属性时就会出错。

另,设定的是handles.axes1,不是handles.axes,所以提示在handles结构中不存在axes这个句柄,而不是无效的句柄(invalid handle object)。

get(handles.axes,'tag') ??? Reference to non-existent field 'axes'.

2、问题2:

matlab help的一个例子:

% Create figure to use as GUI in your main function or a subfunction

figure_handle = figure();

% create structure of handles

myhandles = guihandles(figure_handle); 

% Add some additional data as a new field called numberOfErrors

myhandles.numberOfErrors = 0; 

% Save the structure

guidata(figure_handle,myhandles) 

不是很明白guidata的用法,figure_handle和myhandles之间是什么关系?是如何进行保存的。

答:

这就是GUI里面的句柄和包含句柄的结构之间的区别。 

figure_handle是和所创建的figure相关联的句柄,通过语句

myhandles = guihandles(figure_handle); 

所获得的是和figure_handle句柄相关联的一个结构,此结构包含了该figure内所有控件的句柄,

比如:菜单、工具条等等控件的句柄,其中也包含figure_handle这个句柄。myhandles结构可以

储存与GUI有关的一切数据。

guidata(figure_handle,myhandles) 是保存与figure的句柄figure_handle相关联的myhandles结构。

5、Matlab利用定时器连续显示图片的问题

利用定时器连续显示图片,里面用的是image函数,但image函数显示图片大小会失真。于是改用imshow函数,能解决大小失真的问题。但每次点击播放,都会弹出可恶的窗口。调试发现,发现每次调用imshow时都弹出来。搞不清问题出在哪里。以下是图像播放的代码:

function picture_play(hobj,event,handles)    

global filename1;

global pathname1;

global number_of_file1;

global index1;

global A;

index1=index1+1;

if index1==number_of_file1+1 

index1=1;

end

A=imread([pathname1,filename1{index1}]);  

cla;

imshow(A,'parent',handles.axes4);     

strFileName=fullfile(pathname1,filename1{index1});

set(handles.filename_edit,'string',strFileName);

解决办法:

经过调试,追踪imshow函数的内部,终于找出了问题:

打开figure的属性编辑器,可见fugure的‘HandleVisibily’属性值默认为‘callback’,把它改为‘on’;同时确保‘NextPlot’的属性值为‘add’,问题解决。

另,新建的figure对象的HandleVisibily’属性,默认值都为callback。

帮助文件说,这是matlab采取的一种保护措施,HandleVisibily’属性值默认为‘callback’,figure的句柄只对其所包含控件的回调函数来说是可见的。这也可能是imshow和image函数在处理这一问题上的不同吧。

注意:类似的问题以前在论坛中也有会员提出过:

如何把波形绘制到指定的坐标轴上?发表于 2007-11-21 11:27 AM

在GUI做了一个有三个坐标轴的界面,用于显示从串口接收到的数据。

串口设置如下:

g = serial('COM1') ;

g.InputBufferSize= 4096;

g.OutputBufferSize= 4000;

g.BaudRate= 9600;

g.BytesAvailableFcnMode = 'byte'; %中断触发事件为’bytes-available Event’?

g.BytesAvailableFcnCount = 45; %接收缓冲区每收到45 个字节时, 触发回调函数

g.BytesAvailableFcn = @instrcallback; %得到回调函数句柄

回调函数instrcallback的绘制波形部分程序如下:

t =1:1:4;

axes(Ch1_Dis);  %Ch1_Dis为坐标轴1句柄

hold on

plot(t,ch1);

axes(Ch2_Dis);   %Ch2_Dis为坐标轴2句柄

hold on

plot(t,ch2);

axes(Ch3_Dis);   %Ch3_Dis为坐标轴3句柄

hold on

plot(t,ch3);

但是每次通过串口触发回调函数instrcallback时,执行到plot指令都会另建一窗口figure1,将波形绘制到另建的窗口中。

当不通过串口触发回调函数,而是在一按钮的回调函数中调用instrcallback时,就会把波形绘制到指定坐标轴中。

5-1、GUI中实现在图片任意位置上标注text

利用gtext函数。

gtext displays a text string in the current figure window after you select a location with the mouse.

gtext('string') waits for you to press a mouse button or keyboard key while the pointer is within a figure window. Pressing a mouse button or any key places 'string' on the plot at the selected location.

5-2、使用edit的另外一种callback

如果edit是多行的。想点击每一行的时候,能执行不同的事件,那么可以使用:

代码:

contents=get(hObject,'String'); 

a=contents(get(hObject,'Value'))

那么a就是你选择的对应的那一行。

6、MATLAB 如何实现图像的任意裁减?

(1)使用imrect和imcrop函数相结合,就可以实现截图功能。

用imcrop函数,例如:

I = imread('circuit.tif');

I2 = imcrop(I,[60 40 100 90]);

figure, imshow(I)

figure, imshow(I2)

见自己编写的程序:picturecrop。

(2)剪取图像的中间区域:我想裁剪图像中间的部分,就是去掉图像周围部分!

1、首先取得图像的显示范围:

x1=get(gca,'xlim');

y1=get(gca,'ylim');

width=x1(1,2)-x1(1,1);

height=y1(1,2)-y1(1,1);

2、求的图像中心的坐标:

x0=x1(1,1)+width/2;

y0=y1(1,1)+height/2;

3、如果想剪切图像显示区域的1/4(以图像中心向四周剪切),则:

a=width/4;

b=height/4;

4、计算裁剪区域:(以图像中心点为裁剪中心)

rect=[x0-a/2 y0-b/2 a b]

5、用imcrop裁剪:

a=imcrop(A,rect);

7、坐标轴标注刻度、网格、文字方向

用两个矩阵画了一个图像,用grid on添加了网格,但是默认的网格太稀了,想要密一点的,该怎么解决?

1、用 set(AX,'XMinorGrid','on');set(AX,'XMinorGrid','on');

2、(1)控制坐标轴尺度长度:set(gca,'XLim',[-pi/2 pi])

(2)定制自己想标注的刻度:

set(gca,'XTick',[-pi/2:pi/4:pi])   %%%坐标轴最小值,步长,最大值

3、xlabel(‘x轴’,’rotation’,45);%x轴文字的方向,0为水平方向,90为垂直方向

4、将坐标的x轴做成10 的4次方,而不是10000这种形式。

关于Matlab

Matlab是一个强大的数学工具,在各行各业都得以利用,它除了自身强大的矩阵运算和仿真运算功能,还可以与许许多多的软件提供接口,完成且不限于如数据处理,报告导出,代码生成,混合编译等等功能,而如此强大的功能,往往也需要投入很多的时间去学习,其help文档是一个很好的学习工具,想要实现的功能只能是你想不到,认真钻研,几乎可以完成你要实现的目的。

在实际运用中,除了仿真,还常常用到脚本编程,在大家的潜意识中,运行脚本无非就是写完一定的代码,然后将脚本用F5来运行,或者直接拖入Command Window中运行,这不就可以实现了吗?这话没错,若从根本上来讲,所有的运用程序以及其工作界面,其本质就是运行的代码,但是,在友好方面,直观的界面显示往往让人赏心悦目。

在开始介绍之前,说一下笔者的Matlab环境:Matlab2016b。对于GUI的开发,脚本函数可能不向下兼容,但是笔者尽量用兼容的函数来编写例子,那么,现在以界面的介绍作为一个引入来讲讲GUI的相关内容吧。。

在开始介绍之前,说一下笔者的Matlab环境:Matlab2016b。对于GUI的开发,脚本函数可能不向下兼容,但是笔者尽量用兼容的函数来编写例子,那么,现在以界面的介绍作为一个引入来讲讲GUI的相关内容吧。

阅读剩余
THE END