d=size(i,1)*size(i,2)
3、 写出使以下这段文字成为字符串的MATLAB指令。注意保持这段文字的
格式:
在英式用法中,引号通常是单引号,如'Fire!'。
In GB usage quotation marks are usually single: 'fire!'.
解:a=['在英式用法中,引号通常是单引号,如''Fire!''。' ]; b=['In GB usage quotation marks are usually single: ''fire!''. ' ];
c=strvcat(a,b)
4、 用结构体数组来存储2名学生的基本情况数据,每名学生的数据包括
学号、姓名、专业和2门课程的成绩。 解:clear,clc
xuesheng=struct('num',{222,22},'name',{'mike','hike'},'major','tele','score',{rand(2,1)*100,rand(2,1)*100}) xuesheng.score
5、 建立矩阵A并回答有关问题
A{1,1}=1; A{1,2}='Brenden'; A{2,1}=reshape(1:9,3,3);
A{2,2}={12,34,2;54,21,3;4,23,67};
1) 使用访问的方式如何将Brenden改写成BRENDEN?
2) 分别执行A(3)=[]和A{3}=[]后,A的值各是多少?并说明原因。
解:A{1,1}=1; A{1,2}='Brenden'; A{2,1}=reshape(1:9,3,3);
A{2,2}={12,34,2;54,21,3;4,23,67}; A{1,2}=upper(A{1,2}) A{3}=[] A(3)=[]
6、 利用MATLAB提供的rand函数和圆整函数随机生成4X3整数矩阵A,
进行如下操作
1)A各列元素的平均值和中值
2)A的最大元素和最小元素及它们的位置 3)求A的每行元素的和以及全部元素之和
4)分别对A的每列元素按升序、每行元素按降序排列 解:A=round(rand(4,3)) A_mean=mean(A) A_median=median(A) A_max=max(max(A)) A_min=min(min(A)) [x,y]=find(A==A_max) [xx,yy]=find(A==A_min) A_maxlocal=[x(1) y(1)] A_minlocal=[xx(1) yy(1)] A_rsum=sum(A,2)
A_sum=sum(sum(A)) A_csort=sort(A) A_rsort=abs(sort(-A,2))
实验四 MATLAB循环结构程序设计
实验内容及步骤
1、 分别使用for循环语句和while循环语句找出最小的n值,使得n!>10100,
并求出n!。要求显示的结果为 n=70
n!=1.197857e+100>1e100 或
70!=1.197857e+100>1e100
用IF语句执行如下: s=1; for n=1:100 s=s*n; if(s>10^100) break; end end
str1=['n=',num2str(n)]; str2=['n!=',num2str(s)];
disp(str1) disp(str2)
用WHILE语句执行如下: n=1; s=1;
while(s<=10^100) s=s*n; n=n+1; end
str1=['n=',num2str(n-1)]; str2=['n!=',num2str(s)]; disp(str1) disp(str2)
2、 已知 f1=1,n=1
f2=0,n=2 f3=1,n=3
fn=fn-1-2fn-2+fn-3,n>3
求f1 ~ f50中:
1)最大值和最小值及它们的位置,各数之和(最大值给变量MAX,其位置给变量x,最小值给变量MIN,其位置给变量y,各数之和给变量SUM)。
2)正数、零、负数的个数(依次赋值给变量positive,zero,negative)。
法一: clear; f(1)=1; f(2)=0; f(3)=1; for n=4:50
f(n)=f(n-1)-2*f(n-2)+f(n-3); end
[MAX,x]=max(f) %注意不要分号,要执行的语句 [MIN,y]=min(f) SUM=sum(f)
positive=length(find(f>0)) zero=length(find(f==0)) negative=length(find(f<0)) MAX =
406631 x = 49 MIN = -403795 y = 50