matlab练习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sum(x)
sum(x,1)%求数组各列元素的和
sum(x,2) %求数组各行元素的和
sum(sum(x)) %求数组所有元素的和
prod(x)
prod(x,1) %求数组各列元素的乘积
prod(x,2)%求数组各行元素的乘积
prod(prod(x)) %求数组所有元素的乘积
34.已知a = [1 2 3; 3 9 6; 4 10 8;4 0 7],从不同维方向求出其标准方差。
m1=fix(m/100); %求m的百位数字
m2=rem(fix(m/10),10); %求m的十位数字
m3=rem(m,10); %求m的个位数字
if m==m1*m1*m1+m2*m2*m2+m3*m3*m3
disp(m)
end
end
22.编程求出Fibonacci数列中第一个大于10000的元素及序号。
解:a = [1 2 3; 3 9 6; 4 10 8; 4 0 7];
std(a)
std(a,0,1) %按公式1按列方向求矩阵a的标准方差
std(a,1,1) %按公式2按列方向求矩阵a的标准方差
a2=a([1,2],[2,3,1])
a3=a([3,1],:)
a([1,3],[2,4])=zeros(2)%对a([1,3],[2,4])赋值
8.3×3的数组,删除第三列元素,删除第二行元素,删除一个元素,删除所有元素为空矩阵。
解:a=[1 2 0;3 4 0;5 6 9];
a(:,3)=[] %删除第三列元素
asin(x),acos(x),atan(x)%返回值为弧度
asind(x),acosd(x),atand(x)%返回值为角度
12.求1到10的自然对数和常用对数。
解:x=1:10;
log(x) %返回值为自然对数
log10(x) %返回值为常用对数
13.建立任意的两个字符串,并查看字符串占用的字节信息。
y=[1 7 5;4 5 7];
p=max(x,y) ;
P
解:取两个2×3的二维数组x和y同一位置上的元素值大者构成一个新矩阵p。
32.已知x=[1 8 4 2;9 6 2 5;3 6 7 1],从不同维方向求出其平均值和中值。
解:x=[1 8 4 2;9 6 2 5;3 6 7 1];
median(x)
end
break
end
n
20.使用for循环语句逐一显示构架数组的域值。
解:for ii=1:length(s)
disp(s(ii).name)
disp(s(ii).number)
disp(s(ii).class)
disp(s(ii).sex)
end
21.输出全部三位的水仙花数。
解:for m=100:999
解:x=magic(3)
max(x) %矩阵x中各列元素中的最大值
max(x,[],2) %矩阵x中各行元素中的最大值
min(x) %矩阵x中各列元素中的最小值
min(x,[],2) %矩阵x中各行元素中的最小值
max(max(x)) %整个矩阵的最大值
min(min(x)) %整个矩阵的最小值
31.分析下列程序的功能。x=[4 5 6;1 4 8];
1.在命令窗口输入语句:a=[1,2,3;4,5,6;7,8,9],(1)按回车键,命令就被执行,在MATLAB命令窗中显示的结果。(2)如果在上述输入语句末尾加上分号,则在命令窗口显示的结果
解:a =
1 2 3
4 5 6
7 8 9
不显示结果
2.在命令窗口输入语句:x=[-1.3 1+2+3 sqrt(5)],按回车键,命令就被执行,在MATLAB命令窗中显示的结果。
4.产生2阶和3阶魔方阵。
解:m1=magic(2) %产生2阶魔方阵
5.求多项式的x3-7x+6的伴随矩阵,可使用语句:
解:p=[1,0,-7,6];c=compan(p)
6.求(x+y)4的展开式。
解:p1=pascal(4)
p1 =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
a(2,:)=[]%删除第二行元素
a(1)=[]%删除一个元素,则矩阵变为行向量
a=[]%删除所有元素为空矩阵
9.设 和 求A-2B。
解:方法1:
A=[4 -3 1;2 0 5];B=[1 2 0;-1 0 3];
A-2*B
方法2:
A=[4 -3 1;2 0 5];B=[1 2 0;-1 0 3];
end
%方法2:
ii=1:100;square(ii)=ii.^2;square_root(ii)=ii.^(1/2);cube_root(ii)=ii.^(1/3);
25.编程求3阶魔方矩阵大于5的元素的平方根。
解:%方法1:
a=magic(3);
for ii=1:size(a,1)
for jj=1:size(a,2)
解:s1='Northeast Forest Uiversity'%赋值方式建立字符串s1
s2='Haerbin Heilongjiang‘%赋值方式建立字符串s2
whos%查看字符串占用的字节信息
14.使用赋值语句依次为各个域赋值的方法建立构架数组,存储两名学生的名字、学号、性别、班级信息。
解:s.name='Wang Ming';
for jj=1:size(a,2)
if a(ii,jj)>5
a(ii,jj)=sqrt(a(ii,jj));
else
a(ii,jj)=a(ii,jj)^2;
end
end
end
a
%方法2:
a=magic(3);
b=a>5;a(b)=sqrt(a(b));a(~b)=a(~b).^2;a
26.求n!,n=1,2,…,10。
解:%方法1:
f=inline('sin(x)+3');x=fminbnd(f,2,5) ;
%方法2:
x = fminbnd('sin(x)+3',2,5) ;
sin(x)+3 %f(x)在区间[2 5]的极小值
28.建立一数据文件,用于存放若干名学生的姓名和成绩。
解:n=input('Please input the number of student?');
解:%定义函数文件factor:
function f=factor(n)
if n<=1
f=1;
else
f=factor(n-1)*n;
end
return; %返回
%编写下述的命令文件中调用函数文件factor.m:
%for i=1:10
% fac(i)=factor(i);
%end
% fac
27.求函数f(x)=sin(x)+3在区间[2 5]的极小值。
fid=fopen('ss.txt','w');
for i=1:n
n=input('name=?','s');
s=input('score=?');
fprintf(fid,'%8s%6.1f\n',n,s);
end
fclose(fid);
29.已知x=[-43,72,9,16,23,47],求向量x的最大值和最小值。
p(n)=[];
end
p
24.求1-100的平方、平方根和立方根
解:%方法1:
square=zeros(1,100);square_root=zeros(1,100);cube_root=zeros(1,100);
for ii=1:100
square(ii)=ii^2;square_root(ii)=ii^(1/2);cube_root(ii)=ii^(1/3);
解:%1
a(1)=1;a(2)=1;i=2;
while a(i)<=10000
a(i+1)=a(i-1)+a(i);i=i+1;
end
i,a(i)
%2
n=100;a=ones(1,n);
for i=3:n
a(i)=a(i-1)+a(i-2);
ifLeabharlann Baidua(i)>=10000
a(i),
break;
end;
if a(ii,jj)>5
a(ii,jj)=sqrt(a(ii,jj));
end
end
end
a
%方法2:
a=magic(3);b=a>5; %b是逻辑数组
a(b)=sqrt(a(b))
%如果要求同时对小于等于5的元素求平方呢?修改的程序如下:
%方法1:
a=magic(3);
for ii=1:size(a,1)
(1)find(A>4);(2)[i j]=find(A,1);(3)[i j]=find(A,1,'first');(4)[i j]=find(A,1,'last')
解:(1)找出大于4的元素的序号。(2)找出一个不为零的元素的行号、列号。(3)找出第一个不为零的元素的行号、列号。(4)找出最后一个不为零的元素的行号、列号
x=a:h:b;y=0;
f=cos(x-pi/6).*sin(x+pi/6);
for i=1:n
s(i)=(f(i)+f(i+1))*h/2;
y=y+s(i);
end
y
19.求[100,200]之间第一个能被13整除的整数。
解:for n=100:200
if rem(n,13)~=0
continue
end
i
23.求某正整数范围内的全部素数。
解:1
m=input('m=');
p=1:m;p(1)=0;
for i=2:sqrt(m)
for j=2*i:i:m
p(j)=0;
end
end
n=find(p~=0);
p(n)
%2
m=input('m=');
p=2:m;
for i=2:sqrt(m)
n=find(rem(p,i)==0&p~=i);
y=0;i=1;
n=input('n=?');
while i<=n
f=1/i/i;y=y+f;i=i+1;
end
y
%(2)
y=0;i=1;
while 1
f=1/i/i;y=y+f;
if y>=1.5
break;
end
i=i+1;
end
i,y
18.设 ,求:
解:a=0;b=2*pi;n=1000;h=(b-a)/n;
由执行结果可知,矩阵次对角线上的元素1,4,6,4,1即为展开式的系数。
7.建立3×4的矩阵并取子数组的方法
解:a=[1 2 3 4;5 6 7 8;9 10 11 12];
a(1,:)
a(:,end)
a24=a(2,4) %取a的第二行、第四列的元素
a(1:2:4,:)
a(:,1:2:end)
a1=a([1,2],[2,3,4])
median(x,1)%按列方向,求数组的中值
median(x,2)%按行方向,求数组的中值
mean(x)
mean(x,1)%按列方向,求数组的平均值
mean(x,2)%按行方向,求数组的平均值
33.已知x=[4 5 6;1 4 8],分析矩阵x的每行、每列元素的乘积和全部元素的乘积。
解:x=[4 5 6;1 4 8];
解:x =
-1.3000 6.0000 2.2361
3.在命令窗口输入下述语句,建立复数数组:b=[1+2*i,2+3*i;2-i,3-2*i],在MATLAB命令窗中显示的结果。
解:b =
1.0000 + 2.0000i 2.0000 + 3.0000i
2.0000 - 1.0000i 3.0000 - 2.0000i
s.number='19990101';
s.sex='man';
s.class='199901';
s(2).name='Zhang Le';
s(2).number='19990201';
s(2).sex='man';
s(2).class='199902';
15.已知A=[4,-65,-54,0,6;56,0,67, - 45,0],分析下列语句的功能。
解:x=[-43,72,9,16,23,47]
y=max(x)%求向量x中的最大值
[y,l]=max(x)%求向量x中的最大值及其该元素的位置
z=min(x)%求向量x中的最小值
[z,m]=min(x)%求向量x中的最小值及其该元素的位置
30.分别求三阶魔方矩阵中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。
16.建立任意的3×3的矩阵,并求出能被3整除的元素。
解:A=[1 0 3 ;2 9 -1;-3 -9 0];%生成3×3的矩阵A
P=rem(A,3)==0%判断A的元素是否可以被3整除
A(P)%求出被3整除的元素
17.已知
(1)n为任意给定的整数,求y的值。
(2)y≥1.5时,求n的值
解:%(1)
b=uminus(2*B) %,返回2*B的相反数A+b
10.求30。、60。和90。的正弦、余弦、正切和余切函数值。
解:x=30:30:90;
sind(x),cosd(x),tand(x),cotd(x)
11.求0.1,0.2,0.3,0.4,0.5,0.6的反正弦、反余弦和反正切值。
解:x=0.1:0.1:0.6;
相关文档
最新文档