第9章
二、实验题
1.
(1)新建一个Blank GUI。
(2)在窗口上添加一个Static Text、一个Edit Text,一个Push Botton,两个Check Box,一组Radio Button。各控件的属性设置如表9.1所示。
表9.1界面控件属性
控件属性名属性值
静态文本框String实验一:
编辑框String
按钮String设置字体大小
单选按钮1String red
单选按钮2String yellow
单选按钮3String blue
单选按钮4String black Value  1.0
复选框1String倾斜
复选框2String加粗
(3)在按钮的Callback函数中添加以下代码:
s=eval(get(handles.edit1,'String'));
1,'FontSize',s);
(4)在复选框1的Callback函数中添加以下代码:
if(get(hObject,'Value')==get(hObject,'Max'))
1,'FontAngle','italic');
else
1,'FontAngle','normal');
end
在复选框2的Callback函数中添加以下代码:
if(get(hObject,'Value')==get(hObject,'Max'))
1,'FontWeight','bold');
else
1,'FontAngle','normal');
end
(5)在单选按钮组的SelectionChangeFcn函数中添加以下代码:
1,'ForegroundColor',get(eventdata.NewValue,'string')) ;
2.
(1)新建一个Blank GUI。
(2)用菜单编辑器编辑菜单,各菜单项属性如表9.2.
表9.2菜单项属性
菜单项Label属性值Tag属性值
Menu Line Label m_line
Help Help m_help
Line Menu Item Line Style Line Style m_linestyle Line Width Line Width m_linewidth Line Color Line Color m linecolor
Help Menu Item About About m_about
(3)绘图。在窗口的OpeningFcn函数添加以下代码:
global h;
fontweight属性bold
t=0:0.01:6;
h=plot(t.*sin(t),t.*cos(t))
(4)在Line Style菜单项的Callback函数中添加以下代码:
global h;
set(h,'LineStyle','-.');
在Line Width菜单项的Callback函数中添加以下代码:
global h;
set(h,'LineWidth',2);
在Line Color菜单项的Callback函数中添加以下代码:
global h;
set(h,'color','red');
在About菜单项的Callback函数中添加以下代码:
msgbox('Help Item');
3.
t=0:pi/20:6*pi;a=2;b=3;
r=a+b*t;
h_draw=polar(t,r,'-*');
h_menu=uicontextmenu;%½¨Á¢¿ì½Ý²Ëµ¥
%½¨Á¢²Ëµ¥Ïî
uimenu(h_menu,'Label','red','Call','set(h_draw,''Color'',''red'');'); uimenu(h_menu,'Label','yellow','Call','set(h_draw,''Color'',''yellow' ');');
uimenu(h_menu,'Label','blue','Call','set(h_draw,''Color'',''blue'');') ;
set(h_draw,'UIContextMenu',h_menu);%½«¸Ã¿ì½Ý²Ëµ¥ºÍÇúÏ߶ÔÏóÁªÏµÆðÀ´
4.
(1)新建一个Blank GUI。
(2)在窗口上添加三个Static Text、三个Edit Text,一个Push Botton,一个坐标轴对象Axes。各控件的属性设置如表9.3所示。
表9.3界面控件属性
控件属性名属性值
Static Text text1String a:text1String b:text1String n:
Edit Text edit1String edit2String
edit3String
pushbotton1String绘图
Axes1width100 height25
(3)在按钮pushbutton1的Callback函数中添加以下代码:
t=0:pi/20:6*pi;
a=eval(get(handles.edit1,'String'));
b=eval(get(handles.edit2,'String'));
n=eval(get(handles.edit3,'String'));
r=a.*cos(b+n.*t);
polar(handles.axes1,t,r);
第10章
二、实验题
1.
建立模型exercise10_1.mdl
(1)双击Gain模块,打开Function Block Parameters进行设置。设置完成后,单击模型编辑窗口的Start Simulation按钮,观察曲线。
(2)选择Math Operation模块库的Slide Gain模块替代Gain模块
2.略
3.
Scope的双输入实现方法:双击Scope模块,打开Scope示波器窗口,单击该窗口工具栏的Parameters按钮(左数第二个),在打开的对话框的General选项卡的Numbers of axes:后的编辑框中输入2,然后单击OK按钮返回,即可看到模型中的Scope模块增加了一个输入口4.
(1)先建立如下模型
(2)建立子系统。选中除输入输出模块外其他模块,执行Edit菜单的Create Subsystem 命令。
(3)封装子系统。选中子系统模块,执行Edit菜单的Mask Subsystem命令。
在Mask Editor对话框的Parameters选项卡中的Dialog Parameters栏内增加三个变量,单击OK按钮返回。
5.
(1)建立S函数subsection.m
function[sys,x0,str,ts]=subsection(t,x,u,flag) switch flag
case0
[sys,x0,str,ts]=mdlInitializeSizes;
case3
sys=mdlOutputs(t,x,u);
case{1,2,4,9}
sys=[];
otherwise
error('Unhandled Flag',num2str(flag));
end
function[sys,x0,str,ts]=mdlInitializeSizes() sizes=simsizes;
sizes.NumContStates=0;
sizes.NumDiscStates=0;
sizes.NumOutputs=1;
sizes.NumInputs=1;
sizes.DirFeedthrough=1;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[];
str=[];
ts=[-1,0];
function sys=mdlOutputs(t,x,u)
if u>=0&u<2
sys=u*u;
elseif u>=2&u<5
sys=4;
elseif u>=5&u<7
sys=14-2*u;
else
sys=0;
end
(2)模块的封装与测试参见教材Page202
第11章
二、实验题
2.(1)建立EXCEL文件,如气温.xls
(2)Spreadsheet Link的安装与启动参见教材P206
(3)在Excel中选中需要的数据,单击Spreadsheet Link工具栏的“putmatrix”按钮,指定导入MATLAB工作空间的变量名。
(4)单击Spreadsheet Link工具栏中的“wizard”按钮,弹出“MATLAB Function Wizard”对话框。在“Select a category”栏内选择matlab\polyfun类后,在“Select a function”栏选择spline函数,在“Select a function signature”栏内中选中spline(x,y,xx),弹出“Function Arguments”对话框。在对话框中的Inputs栏X右边的展开按钮,然后选中EXCEL表中的第1列数据(除标题行),按Enter键确认,返回“Function Arguments”对话框。单击对话框Inputs栏右部的下拉条,使变量变为Y,同样的方式设定Y的值,接着设定XX变量的值。然后单击Optional output cell(s)右边的展开按钮,在Excel表中选中输出数据使用的单元格,返回对话框后单击OK按钮,完成计算。
3.
clear all
fid=fopen('exercise9_1.m','r');
textall=fscanf(fid,'%c',inf);
ch=zeros(26,1);
for n=1:size(textall,2)
if isletter(textall(n))
if textall(n)>='a'&&textall(n)<='z'
textall(n)=char(textall(n)-('a'-'A'));
end
m=textall(n)-'A'+1;
ch(m)=ch(m)+1;
end
end
4.
(1)编辑c源程序exercise11_4.c,代码如下:
#include<stdio.h>
#include<string.h>/*For strcmp()*/
#include<stdlib.h>/*For EXIT_FAILURE,EXIT_SUCCESS*/
#include<math.h>
#include"mat.h"
#define BUFSIZE256
#define k139
#define k271

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。