去百度文库,查看完整内容>
内容来自用户:沙坡头33
一、选择题
1.产生对角线上全为1,其余为0的2行3列矩阵的命令是()。C
A.ones(2,3)B.ones(3,2)C.eye(2,3)D.eye(3,2)
2.建立3阶单位矩阵A的命令是()。A
A.A=eye(3)B.A=eye(3,1)C.A=eye(1,3)D.A=ones(3)
3.产生和A同样大小的幺矩阵的命令是()。B
A.eye(size(A))B.ones(size(A))
C.size(eye(A))D.size(ones(A))
4.建立5*6随机矩阵A,其元素为[100,200]范围内的随机整数,相应的命令是()。D
A.A=fix(100+200*rand(5,6)) B.A=fix(200+100*rand(5,6))
C.A=fix(100+300*rand(5,6))D.A=fix(100+101*rand(5,6))
5.产生均值为1、方差为0.2的500个正态分布的随机数,相应的命令是()。A。
A.1+sqrt(0.2)*randn(25,20)B.1+0.2*randn(500)
C.0.2+randn(500)D.0.2+randn(25,20)
6.从矩阵A提取主对角线元素,并以这些元素构成对角阵B,相应的命令是()。B
A.B=diag(A)B.B=diag(diag(A))
C.B=diag(triu(A))D.B=diag(tril(A))
7.在MATLAB中定义A=randn(5,4,3,2),则下列关于A的操作中正确的是()。D
A.y=eig(A)B.y=reshape(A,[4 3 6 7])
C.y=cond(A)D.y=sin(A)
8.在命令行窗口中分别输入下列命令,对应输出结果正确的是()。C
A.命令x=[-2:2]',结果x=[-2-1 0 1 2]
B.命令x=zeros(1,2);x>0,结果ans=1
C.命令y=diag(eye(3),1)',结果y=[0 0]
D.命令5-10*rand(1,2)
clc; clear all;% 1.有一矩阵A找出矩阵中大于1的元素并将它们重新排成向量B。
% A = [1 2 3 0 -1 2 3 0 -2 1]ind = find(A>1);B = A(ind)% 2.在测量一矩阵A(100,3)存在有奇异值(设大于100的值认为是奇异值)编程实现删去奇异值所在行。% % 生成100*3的随机矩阵A = randint(100, 3, [90 120])[r, c] = find(A>100);A(r, 🙂 = []% 3.在给定的(100,100)矩阵中删去整行全为0的行,删去整列全为0的列。
% % 生成100*100的随机矩阵A = randint(100, 100, [0 5])ind = [];for i = 1 : 100 temp = A(i, :); if unique(temp) == 0 ind = [ind i]; endendA(ind, 🙂 = []ind = [];for i = 1 : 100 temp = A(:, 100); if unique(temp) == 0 ind = [ind i]; endendA(:, ind) = []希望对你能有所帮助。
MATLAB 基础知识
一、MATLAB简介
二、MATLAB基础知识
1、命令窗口是用户与MATLAB进行交互作业的主要场所,用户输入的MATLAB交互命令均在命令窗口执行。
例如:在MATLAB命令窗口下键入
a=[3 2 3;4 7 6;7 5 9]
按回车键后,显示结果
a=
3 2 3
4 7 6
7 5 9
2、求逆矩阵命令
格式:[变量]=inv(参数)
例如:输入b=inv(a),按回车后,显示
b= 1.3750 -0.1250 -0.3750
0.2500 0.2500 -0.2500
-1.2083 -0.0417 0.5417
3、MATLAB系统还具有保存历史纪录的功能,它将本次启动MATLAB系统之后,用户输入的命令和创建的所有变量的值保存起来,用户通过方向键可查找所需的命令。
MATLAB提供了存储变量和删除变量的命令。
SAVE [文件名] [变量名1,变量名2,。.]
功能:将命令中的变量保存在给出的文件中。
说明:(1)若过文件名省略,默认保存在MATLAB.MAT中。
(2)若变量名省略,则保存所有的变量到指定的文件中。
(3)若文件名和变量名都省略,则保存所有定义过的变量到MATLAB.MAT中。
例如:SAVE AA.MAT a b c %将变量a b c保存在文件AA.MAT中。
SAVE BB.MAT % 将所有的变量保存到文件BB.MAT中。
SAVE % 将所有变量保存到文件MATLAB.MAT中。
clear [变量名1 变量名2,。]
功能:删除指定的变量。
说明:若变量名表省略,表明删除当前工作空间中的所有变量。
例如:clear a b c %删除变量a b c
clear %删除当前工作空间的所有变量。
MATLAB还提供了一些命令,专门管理和控制命令窗口。例如:
clc
格式:clc
功能:清除命令窗口。
home
格式:home
功能:光标移动到左上角
who
格式:who
功能:查看当前的所有变量,只给出变量名。
whos
格式:whos
功能:查看当前的所有变量,给出变量的详细信息。信息同变量浏览器。
clear
格式:clear [变量名]
功能:删除后面列出的变量,如果变量名省略,则删除所有的变量。
4、MATLAB中的常量
MATLAB提供了整数、实数、复数和字符四种类型数据。对应的常量类型也是这四种。实数在屏幕显时默认的小数位数为4位。可以用命令改变实数的显示格式。
命令format
格式:format '格式'
例如:format long :输出实数为16位
format short e :5位加指数
format long e : 16位加指数
format rat : 有理数近似
矩阵操作
1、提取矩阵的元素
例如:A=[1 2 3 3; 3 2 4 1; 3 4 5 6]
执行b=A(1,2),结果为:
b= 2
执行v=A([1,2],[3,4]),结果为:
v= 3 3
4 1
全部通过测试,可以运行、问题1%Q1 %主函数 num = input('please input a number: ') if func_is_prime(num) disp('The input number is a prime number.'); else disp('The input number is NOT a prime number.'); end%子函数 function result = func_is_prime(x) temp = 2:x-1; temp = x./temp; result = (temp ~= round(temp)); 问题2%Q2 zero_num = 0; for x = 1:2007; zero_num = func_cal_zero_num(x) + zero_num; end disp(zero_num);%子函数,统计数字中0的个数 function result = func_cal_zero_num(x) result = 0; if x>=0 & x result = 1; elseif x>=10 & x result = 1; elseif x>=100 & x result = 1; elseif x>=100 & x result = 1; elseif x>=1000 & mod(x,1000)==0; result = 1; elseif x>=1000 & mod(x-mod(x,10),100)==0 ~mod(x-mod(x,100),1000)==0; result = 1; elseif x>=1000 & mod(x-mod(x,100),1000)==0 ~ mod(x-mod(x,10),100)==0; result = 1; end 问题3%Q3 x = -3:0.01:3; y=zeros(size(x)); for i = 1:length(x) if -3 y(i)=(-x(i).^2-4*x(i)-3)/2; elseif -1 y(i)=-x(i).^2+1; elseif 1 y(i)=(-x(i).^2+4*x(i)-3)/2; end end plot(x,y); 问题4%Q4 k = menu('please choose a number', '1', '4'); switch k case 1 a = -10; b = 10; result = a + (b-a) * rand(1); case 4 a = 0; b = 1; result = a + sqrt(b) * randn(1); end disp(result); 问题5 %Q5 x = 25; result = 0; if x result = x*0.1; elseif x>10 & x result = 10*0.1+(x-10)*0.05; elseif x>20 & x result = 10*0.1+10*0.05+(x-20)*0.02; else result = 10*0.1+10*0.05+20*0.02+(x-40)*0.01; end disp(result); 问题6%Q6 num = 3; a = 1; b = 2; result = 0; for i = 1:num result = result + b/a; temp = a; a = b; b = temp + b; end disp(result); 问题7,也是约瑟夫环问题%Q7 n = 20; m = 7; arr_size = n; s = 1; a = 1:n; result = zeros(1,n); s1 = s-1; for t = n:-1:1 s1 = rem((s1 +m-1),t); w = a(s1+1); fprintf('The %d-th person is out\n',w);% 显示第几号人出列 result(n-t+1) = w;% 将出列的人放入result数组 for t=s1+1:1:arr_size-1%移动数组元素 a(t)=a(t+1); end arr_size = arr_size-1; end disp(result);。
可能是我的理解能力很差,您第二、三题的要求我没有读明白,如果需要,可以直接联系我的Q,或者说的更详细些,我很愿意同您一起学习。
这是第一题的答案(score.txt文件必须放在MATLAB能寻找到的目录下)
fid=fopen('score.txt','r'); s=fscanf(fid,'%f'); fis=fclose(fid); eve=mean(s); disp('EVE='); disp(eve); a=0;b=0;c=0;d=0;e=0; for i=1:25 if(s(i)>=90) a=a+1; elseif(s(i)>=80) b=b+1; elseif(s(i)>=70) c=c+1; elseif(s(i)>=60) d=d+1; else e=e+1; end end disp('A=');disp(a); disp('B=');disp(b); disp('C=');disp(c); disp('D=');disp(d); disp('E=');disp(e);
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.786秒