matlab经典源程序带有注释详细经典Word格式.docx
- 文档编号:6811219
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:36
- 大小:22.91KB
matlab经典源程序带有注释详细经典Word格式.docx
《matlab经典源程序带有注释详细经典Word格式.docx》由会员分享,可在线阅读,更多相关《matlab经典源程序带有注释详细经典Word格式.docx(36页珍藏版)》请在冰点文库上搜索。
style'
pushbutton'
ExecuteCallback'
[0.40.40.30.2],...
callback'
['
figure;
x=0:
pi/20:
2*pi;
y=sin(x);
plot(x,y);
]);
%在窗口中创建按钮控件
hpush=uicontrol('
%设置按钮的Callback属性
set(hpush,'
@mycallback);
%定义回调函数为子函数
functionmycallback(hobj,event)
2.3元胞数组
a={'
hello'
[123;
456];
1{'
1'
2'
}}
a=
[2x3double]
[1]{1x2cell}
%示例2:
将元胞数组a中的元胞逐一赋值
>
a{1,1}='
a{1,2}=[123;
a{2,1}=1;
a{2,2}={'
};
a
%示例3:
使用cell函数来创建元胞数组
%生成2x3的元素为空数组的元胞数组
a=cell(2,3)
[][][]
%示例4:
判断数组A是否为元胞数组
%定义一个元胞数组A
A={123};
%判断A是否为元胞数组,如果为元胞数组,则函数
tf=iscell(A)
tf=
1
%示例5:
显示元胞数组C中的内容
clear
C={'
Smith'
[12;
34][12]};
%直接显示元胞数组C中的内容
celldisp(C)
C{1}=
Smith
C{2}=
12
34
C{3}=
12
%显示元胞数组C中的内容,数组的名称用cellcontent代替
celldisp(C,'
cellcontent'
cellcontent{1}=
cellcontent{2}=
34
cellcontent{3}=
%示例6:
将字符数组转换为元胞数组
S=['
abc'
defg'
him'
];
cellstr(S)
ans=
abc'
%原先abc后面的空格被清除
%i和m之间的空格仍然保留
%示例7:
显示元胞数组S中的内容(包括空格和字符)
S={'
'
cellplot(S)
%示例8:
将数字数组A按行或按列转换为元胞数组
%A是4x3的数组
A=[123;
456;
789;
101112];
%把A的每一列转换为一个元胞,得到的C是1×
3的元胞数组
C=num2cell(A,1)
C=
[4x1double][4x1double][4x1double]
%把A的每一行转换为一个元胞,得到的C是4×
1的元胞数组
C=num2cell(A,2)
[1x3double]
2.4结构数组
%示例1:
使用直接法来创建结构数组
A
(1).name='
Pat'
A
(1).number=176554;
A
(2).name='
Tony'
A
(2).number=901325;
A
A=
1x2structarraywithfields:
name
number
利用struct函数来创建结构数组
A
(1)=struct('
name'
number'
176554);
A
(2)=struct('
901325);
使用deal函数来得到结构体中各结构域的值
%定义结构数组A
A.name='
A.number=176554;
A
(2).number=901325;
%得到结构数组中所有name结构域的数据
[name1,name2]=deal(A(:
).name)
name1=
Pat
name2=
Tony
使用getfield函数来取得结构体中结构域的值
%定义mystr结构数组
mystr(1,1).name='
alice'
mystr(1,1).ID=0;
mystr(2,1).name='
gertrude'
mystr(2,1).ID=1;
%取得mystr(2,1)的结构域name的值
f=getfield(mystr,{2,1},'
f=
gertrude
删除结构数组中的指定结构域
%定义结构数组s
s.field1=[123];
s.field2='
string'
s.field3={123;
456};
%删除结构域field1
s=rmfield(s,'
field1'
s=
field2:
field3:
{2x3cell}
%删除结构域'
field2'
field3'
s=rmfield(s,{'
})
field1:
[123]
s
%将结构数组转换为元胞数组
c=struct2cell(s)
c=
{2x3cell}
%示例7:
c={'
birch'
betula'
65;
maple'
acer'
50}
[65]
[50]
fields={'
genus'
height'
%fields包含struct中的结构域名
s=cell2struct(c,fields,2);
%dim=2表示把c中的各行转换为struct数组
s=
2x1structarraywithfields:
name
genus
height
s
(1)
ans=
name:
genus:
height:
65
s
(2)
50
fields={'
s=cell2struct(c,fields,1);
%dim=1表示把c中的各列转换为struct数组
field1:
field2:
s(3)
65
50
2.5矩阵操作
%示例1:
find函数的使用方法。
%定义矩阵A
A=[1234;
5678];
%查找A中所有大于3的元素,返回元素的线性索引
ind=find(A>
3)
ind=
2
4
6
7
8
%查找A中所有大于3的元素,返回元素的行下标和列下标
[mn]=find(A>
m=
n=
3
矩阵元素的线性索引与行列下标之间的转换
3);
[IJ]=ind2sub(size(A),ind)
IND=sub2ind(size(A),I,J)
I=
J=
IND=
删除矩阵中的指定元素
%删除A的第1行的数据
A(1,:
)=[]
A=
5678
%删除A的第1列的数据
A(:
1)=[]
234
678
查询矩阵的大小对于
%由rand命令生成的一个4×
3×
2的三维矩阵
A=rand(4,3,2);
%得到矩阵的大小信息
num=size(A)
num=
432
num=length(A)
num=size(A,1)
num=size(A,2)
num=size(A,3)
求矩阵的最大和最小值
a=[23;
36;
49]
a=
23
36
49
b=[14;
45;
58]
b=
14
45
58
max(a)
min(a)
max(a,b)
24
46
59
max(a,[],2)
9
max(a,[],1)
2.6字符串操作
创建字符串string
%创建普通字符串
string='
TostudyMATLAB!
string=
%创建带单引号的字符串,在出现单引号的地方用两个单引号代替(’’)
We'
regoingtostudyMATLAB!
将上述string字符串中的study替换为learn
%创建字符串string
%将其中的study替换为learn
string(16:
20)='
learn'
regoingtolearnMATLAB!
取出string中的子串learn
subString=string(16:
20)
subString=
learn
将上述string字符串倒排
newString=string(end:
-1:
1)
newString=
!
BALTAMnraelotgnioger'
eW
计算字符串中字符的个数
[rc]=size(string)
r=
c=
28
字符串的ASCII码值与字符串的转换
%取得ASCII码值
ascii_string=double(string)
ascii_string=
Columns1through21
87101391141013210311110511010332116111321081019711411032
Columns22through28
77658476656633
%转换为字符串
string=char(ascii_string)
字符串的比较和连接
str1='
abcdefg'
str2='
hijklmn'
str3='
abckjhl'
str4='
ABCkjhl'
%连接str1和str2为行向量
newstr1=strcat(str1,str2)
newstr1=
abcdefghijklmn
%连接str1、str2和str3为列向量
newstr2=strvcat(str1,str2,str3)
newstr2=
abcdefg
hijklmn
abckjhl
%在newstr2中查找以’abc’开头的各行
strmatch('
newstr2)
%比较字符串str1和str4的前三个字符,区分字符的大小写
strncmp(str1,str4,3)
0
%比较字符串str1和str4的前三个字符,不区分字符的大小写
strncmpi(str1,str4,3)
数字数组和字符串的转换
%创建数字数组A
788910]
123
456
788910
%将数字数组A转换为字符数组
str=num2str(A)
str=
788910
whosstr
NameSizeBytesClassAttributes
str3x1060char
%将字符数组str转换为数字数组
num=str2num(str)
whosnum
num3x372double
%将数字数组A转换为字符串(行向量),向量中的元素包括“[”、“]”、“;
”等字符。
str2=mat2str(A)
str2=
[123;
whosstr2
str21x2244char
%示例9:
%字符串中字符的大小写的转换
str='
matlab'
matlab
str1=upper(str)
str1=
MATLAB
str=lower(str1)
%查找在str1中出现str2的位置
cdf'
findstr(str1,str2)
[]
cd'
2.7判断函数使用大全
%%
%示例1
h=gcf;
value=rand(3);
setappdata(h,'
myappdata'
value);
tf=isappdata(h,'
A{1,1}=[143;
058;
729];
A{1,2}='
AnneSmith'
A{2,1}=3+7i;
A{2,2}=-pi:
pi/10:
pi;
iscell(A)
A{1,1}='
ThomasLee'
Marketing'
A{2,1}='
AllisonJones'
A{2,2}='
Development'
iscellstr(A)
%双精度数字数组
C{1,1}=magic(3);
%字符数组
C{1,2}='
JohnDoe'
%复数数组
C{1,3}=2+4i;
%>
C
%C=
%[3x3double]'
[2.0000+4.0000i]
%ischar函数返回值表明只有C{1,2}是字符数组
fork=1:
3
x(k)=ischar(C{1,k});
end
%x
%x=
%010
tf=isdir('
D:
\work'
%示例6
A=rand(2,3);
B=[];
tf1=isempty(A)
tf2=isempty(B)
%示例7
A=[123;
B=[789;
tf1=isequal(A,B);
%示例8
patient.name='
patient.billing=127.00;
isfield(patient,'
billing'
%示例9
a=[-2-1012];
isfinite(1./a)
isfinite(0./a)
%示例10
tf1=ishandle(h)
closeall
tf2=ishandle(h)
%示例11
globalA
A=100;
isglobal(A)
%示例12
isstruct(patient)
%示例13
C{1,1}=pi;
tf1=isnumeric(C{1,1})
tf2=isnumeric({1,2})
%示例14
C{1,1}=ispc;
tf1=islogical(C{1,1})
tf2=islogical({1,2})
%示例15
set=[02468101214161820];
A=[1;
2;
3;
4;
5];
ismember(A,set)
%示例16
isnan(0./a)
%示例17
x=magic(3);
y=complex(x);
isreal(x)
isreal(y)
%示例18
A=rand(5);
isscalar(A)
isscalar(A(3,2))
%示例19
A=[5123339789095107128131];
issorted(A)
%示例20
s1=serial('
COM1'
s2=serial('
delete(s2)
sarray=[s1s2];
isvalid(sarray)
2.11打开外部程序
%示例1:
opencopyfile.m
%示例2:
open('
\works\data.mat'
%示例3
openmyfile
%示例4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 经典 源程序 带有 注释 详细