MATLAB习题
- 格式:doc
- 大小:164.00 KB
- 文档页数:17
matlab编程考试题及答案1. 题目:编写一个MATLAB函数,计算并返回一个向量中所有元素的和。
答案:```matlabfunction sumResult = vectorSum(vectorInput)sumResult = sum(vectorInput);end```2. 题目:创建一个MATLAB脚本,该脚本可以读取一个文本文件中的数据,并计算其平均值。
答案:```matlab% 假设文件名为data.txt,且数据以空格分隔filename = 'data.txt';data = load(filename);averageValue = mean(data);disp(['平均值为:', num2str(averageValue)]);```3. 题目:编写一个MATLAB函数,该函数接受一个矩阵作为输入,并返回其转置矩阵。
答案:```matlabfunction transposeMatrix = matrixTranspose(inputMatrix) transposeMatrix = inputMatrix';end```4. 题目:创建一个MATLAB脚本,该脚本可以生成一个3x3的魔方矩阵,并显示出来。
答案:```matlabn = 3;magicMatrix = magic(n);disp(magicMatrix);```5. 题目:编写一个MATLAB函数,该函数接受一个字符串作为输入,并返回字符串中每个字符出现的次数。
答案:```matlabfunction charCounts = countCharacters(inputString)charCounts = histcounts(inputString, 'BinMethod','integers');end```6. 题目:创建一个MATLAB脚本,该脚本可以计算并显示一个二次方程ax^2 + bx + c = 0的根。
matlab考试题库及答案大学# MATLAB考试题库及答案大学一、选择题1. MATLAB中用于生成0到1之间均匀分布随机数的函数是: - A. rand- B. randi- C. randperm- D. randn答案:A2. 下列哪个命令可以用于绘制函数图像?- A. plot- B. text- C. title- D. xlabel答案:A3. MATLAB中,以下哪个不是矩阵的属性?- A. size- B. length- C. rank- D. transpose答案:D4. 以下哪个函数可以用于求解线性方程组?- A. solve- B. linsolve- C. linprog- D. fsolve答案:A5. MATLAB中,用于计算矩阵特征值的函数是:- A. eig- B. eign- C. eigen- D. eigenvalue答案:A二、填空题1. MATLAB的基本数据单位是________。
答案:矩阵2. 使用MATLAB进行数值计算时,可以利用________来存储数据。
答案:变量3. MATLAB中的向量可以是________或________。
- 答案:行向量;列向量4. 矩阵的转置可以通过________操作实现。
答案:.'5. MATLAB中,使用________函数可以计算矩阵的行列式。
答案:det三、简答题1. 简述MATLAB中使用循环结构的注意事项。
答案:在MATLAB中使用循环结构时,应注意以下几点:确保循环体内部逻辑正确,避免无限循环;使用for循环时,循环变量的初始化和步长设置要合理;使用while循环时,循环条件要明确,确保循环能够正常退出。
2. 描述MATLAB中如何实现数组的多维索引。
答案:在MATLAB中,多维数组的索引可以通过使用圆括号来实现,每个维度的索引用逗号分隔。
例如,对于一个三维数组A,可以使用A(i,j,k)来访问第i行、第j列、第k层的元素。
习题 11. 执行下列指令,观察其运算结果, 理解其意义: (1) [1 2;3 4]+10-2i(2) [1 2; 3 4].*[0.1 0.2; 0.3 0.4] (3) [1 2; 3 4].\[20 10;9 2] (4) [1 2; 3 4].^2 (5) exp([1 2; 3 4]) (6)log([1 10 100]) (7)prod([1 2;3 4])(8)[a,b]=min([10 20;30 40]) (9)abs([1 2;3 4]-pi)(10) [1 2;3 4]>=[4,3;2 1](11)find([10 20;30 40]>=[40,30;20 10])(12) [a,b]=find([10 20;30 40]>=[40,30;20 10]) (提示:a 为行号,b 为列号) (13) all([1 2;3 4]>1) (14) any([1 2;3 4]>1) (15) linspace(3,4,5) (16) A=[1 2;3 4];A(:,2)2. 执行下列指令,观察其运算结果、变量类型和字节数,理解其意义: (1) clear; a=1,b=num2str(a),c=a>0, a= =b, a= =c, b= =c (2) clear; fun='abs(x)',x=-2,eval(fun),double(fun)3. 本金K 以每年n 次,每次p %的增值率(n 与p 的乘积为每年增值额的百分比)增加,当增加到rK 时所花费的时间为)01.01ln(ln p n rT +=(单位:年)用MA TLAB 表达式写出该公式并用下列数据计算:r =2, p =0.5, n =12.4.已知函数f (x )=x 4-2x在(-2, 2)内有两个根。
取步长h =0.05, 通过计算函数值求得函数的最小值点和两个根的近似解。
习题:1, 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
2, 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
3, 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。
4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。
(应用sin,cos,tan.cot)5, 将矩阵⎥⎦⎤⎢⎣⎡=7524a 、⎥⎦⎤⎢⎣⎡=3817b 和⎥⎦⎤⎢⎣⎡=2695c 组合成两个新矩阵: (1)组合成一个4⨯3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡237912685574(2)按照a 、b 、c 的列顺序组合成一个行矢量,即 []2965318772546, 将(x -6)(x -3)(x -8)展开为系数多项式的形式。
(应用poly,polyvalm)7, 求解多项式x 3-7x 2+2x +40的根。
(应用roots)8, 求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。
(应用poly,polyvalm)9, 计算多项式9514124234++--x x x x 的微分和积分。
(应用polyder,polyint ,poly2sym)10, 解方程组⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡66136221143092x 。
(应用x=a\b)11, 求欠定方程组⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡5865394742x 的最小范数解。
(应用pinv) 12, 矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=943457624a ,计算a 的行列式和逆矩阵。
(应用det,inv)13, y =sin(x ),x 从0到2π,∆x =0.02π,求y 的最大值、最小值、均值和标准差。
matlab试题及答案# MATLAB试题及答案一、选择题1. MATLAB的基本数据单位是:A. 矩阵B. 向量C. 标量D. 数组答案:A2. 下列哪个命令可以用来绘制函数图形?A. `plot`B. `graph`C. `draw`D. `chart`答案:A3. MATLAB中,以下哪个是正确的矩阵转置操作?A. `transpose(A)`B. `A'`C. `A^T`D. `flip(A)`答案:B二、简答题1. 简述MATLAB中矩阵的基本操作。
答案:在MATLAB中,矩阵是最基本的数据结构,可以进行加、减、乘、除等基本运算。
矩阵的创建可以使用方括号`[]`,例如`A = [1 2;3 4]`。
矩阵的转置使用单引号`'`,例如`A'`。
矩阵的求逆使用`inv`函数,例如`inv(A)`。
2. MATLAB中如何实现循环结构?答案:MATLAB中实现循环结构主要有两种方式:`for`循环和`while`循环。
`for`循环用于已知迭代次数的情况,例如:```matlabfor i = 1:5disp(i);end````while`循环用于迭代次数未知的情况,例如:```matlabi = 1;while i <= 5disp(i);i = i + 1;end```三、计算题1. 给定矩阵A和B,请计算它们的乘积C,并求C的行列式。
A = [1 2; 3 4]B = [5 6; 7 8]答案:首先计算矩阵乘积C:```matlabC = A * B;```然后计算C的行列式:```matlabdetC = det(C);```结果为:```matlabC = [19 22; 43 50]detC = -16```2. 编写一个MATLAB函数,计算并返回一个向量的范数。
答案:```matlabfunction norm_value = vector_norm(v)norm_value = norm(v);end```四、编程题1. 编写一个MATLAB脚本,实现以下功能:- 随机生成一个3x3的矩阵。
matlab编程考试题及答案1. 编写一个MATLAB函数,该函数接受一个向量作为输入,并返回该向量中所有元素的平方和。
```matlabfunction sumOfSquares = vectorSquareSum(inputVector)sumOfSquares = sum(inputVector .^ 2);end```答案:该函数通过使用点乘运算符(`.^`)来计算向量中每个元素的平方,然后使用`sum`函数计算这些平方值的总和。
2. 给定一个3x3的矩阵A,编写MATLAB代码计算其行列式。
```matlabA = [1 2 3; 4 5 6; 7 8 9];determinantA = det(A);```答案:使用MATLAB内置函数`det`可以直接计算矩阵A的行列式。
3. 编写一个MATLAB脚本,实现对一个给定字符串进行反转。
```matlaboriginalString = 'HelloWorld';reversedString = fliplr(originalString);```答案:使用`fliplr`函数可以将字符串中的字符从左到右翻转,实现字符串的反转。
4. 给定两个向量x和y,编写MATLAB代码计算它们之间的欧几里得距离。
```matlabx = [1 2 3];y = [4 5 6];euclideanDistance = sqrt(sum((x - y) .^ 2));```答案:欧几里得距离可以通过计算两个向量对应元素差的平方和的平方根来得到。
5. 编写一个MATLAB函数,该函数接受两个参数,一个是矩阵,另一个是标量值,返回矩阵中所有元素与该标量值的差的绝对值。
```matlabfunction absDiffMatrix = matrixScalarDifference(matrix, scalar)absDiffMatrix = abs(matrix - scalar);end```答案:该函数通过从矩阵的每个元素中减去标量值,然后使用`abs`函数计算结果的绝对值。
习题 11. 执行下列指令,观察其运算结果, 理解其意义: (1) [1 2;3 4]+10-2i(2) [1 2; 3 4].*[0.1 0.2; 0.3 0.4] (3) [1 2; 3 4].\[20 10;9 2] (4) [1 2; 3 4].^2 (5) exp([1 2; 3 4]) (6)log([1 10 100]) (7)prod([1 2;3 4])(8)[a,b]=min([10 20;30 40]) (9)abs([1 2;3 4]-pi)(10) [1 2;3 4]>=[4,3;2 1](11)find([10 20;30 40]>=[40,30;20 10])(12) [a,b]=find([10 20;30 40]>=[40,30;20 10]) (提示:a 为行号,b 为列号) (13) all([1 2;3 4]>1) (14) any([1 2;3 4]>1) (15) linspace(3,4,5) (16) A=[1 2;3 4];A(:,2)2. 执行下列指令,观察其运算结果、变量类型和字节数,理解其意义: (1) clear; a=1,b=num2str(a),c=a>0, a= =b, a= =c, b= =c (2) clear; fun='abs(x)',x=-2,eval(fun),double(fun)3. 本金K 以每年n 次,每次p %的增值率(n 与p 的乘积为每年增值额的百分比)增加,当增加到rK 时所花费的时间为)01.01ln(ln p n rT +=(单位:年)用MA TLAB 表达式写出该公式并用下列数据计算:r =2, p =0.5, n =12.4.已知函数f (x )=x 4-2x 在(-2, 2)内有两个根。
取步长h =0.05, 通过计算函数值求得函数的最小值点和两个根的近似解。
matlab开卷考试题及答案MATLAB开卷考试题及答案一、选择题(每题2分,共20分)1. MATLAB中用于创建一个3x3的单位矩阵的命令是:A. `eye(3)`B. `ones(3)`C. `zeros(3)`D. `identity(3)`答案:A2. 下列哪个函数用于计算矩阵的逆?A. `inv()`B. `det()`C. `eig()`D. `trace()`答案:A3. MATLAB中,用于绘制二维图形的函数是:A. `plot()`B. `surf()`C. `mesh()`D. `bar()`答案:A4. 如何在MATLAB中计算向量的范数?A. `norm()`B. `abs()`C. `length()`D. `size()`答案:A5. MATLAB中,用于创建一个随机数矩阵的函数是:A. `rand()`B. `randi()`C. `randn()`D. `randperm()`答案:A6. 下列哪个命令用于在MATLAB中求解线性方程组?A. `solve()`B. `fsolve()`C. `fzero()`D. `linsolve()`答案:A7. MATLAB中,用于计算矩阵的行列式的函数是:A. `det()`B. `trace()`C. `eig()`D. `inv()`答案:A8. 如何在MATLAB中创建一个全1的3x3矩阵?A. `ones(3,3)`B. `eye(3,3)`C. `zeros(3,3)`D. `rand(3,3)`答案:A9. MATLAB中,用于计算矩阵的特征值的函数是:A. `eig()`B. `eigs()`C. `svd()`D. `qr()`答案:A10. 下列哪个函数用于计算矩阵的奇异值分解?A. `eig()`B. `svd()`C. `qr()`D. `lu()`答案:B二、填空题(每题3分,共30分)1. MATLAB中,用于创建一个3x3的零矩阵的命令是 `____`。
matlab考试题一、选择题1. 在MATLAB中,下列哪个命令可以用于绘制三维曲面图?A. plot3B. surfC. meshD. contour32. 如何在MATLAB中创建一个名为“myArray”的数组,其元素从1到100?A. myArray = 1:100;B. myArray = array(1:100);C. array = {1, 2, 3, ..., 100};D. array = 1:100, name = 'myArray';3. 在MATLAB中,如何计算矩阵A和矩阵B的点积?A. A * BB. A.* BC. dot(A, B)D. A + B4. 若要在MATLAB中定义一个函数,使得输入参数x的平方和x的和相加,应该如何编写该函数?A. function y = x^2 + xB. function y = sum(x^2, x)C. function y = x^2 + sum(x)D. function y = x.^2 + x5. 在MATLAB中,如何清空当前工作空间的所有变量?A. clear allB. clearC. delete allD. clear workspace二、填空题1. 在MATLAB中,使用 ________ 命令可以导入外部数据文件。
2. 要创建一个从10到20的行向量,可以使用 MATLAB 代码________。
3. 在MATLAB中,使用 ________ 函数可以计算矩阵的行列式。
4. 若要在MATLAB中绘制一个单位圆,可以使用 ________ 命令。
5. 为了在MATLAB中保存工作,可以使用 ________ 命令。
三、简答题1. 请简述MATLAB的主要功能和应用领域。
2. 描述在MATLAB中如何进行矩阵运算。
3. 说明在MATLAB中创建和使用函数的基本步骤。
4. 讨论在MATLAB中进行数据分析和可视化的常用方法。
matlab习题及答案Matlab习题及答案Matlab是一种强大的数学计算软件,被广泛应用于科学计算、数据分析和工程设计等领域。
在学习和使用Matlab的过程中,习题是一种非常有效的学习方式。
本文将给出一些常见的Matlab习题及其答案,帮助读者更好地掌握Matlab的使用技巧。
一、基础习题1. 计算1到100之间所有奇数的和。
解答:```matlabsum = 0;for i = 1:2:100sum = sum + i;enddisp(sum);```2. 编写一个函数,计算任意两个数的最大公约数。
解答:```matlabfunction gcd = computeGCD(a, b)while b ~= 0temp = b;a = temp;endgcd = a;end```3. 编写一个程序,生成一个5×5的随机矩阵,并计算矩阵的行和列的平均值。
解答:```matlabmatrix = rand(5);row_average = mean(matrix, 2);col_average = mean(matrix);disp(row_average);disp(col_average);```二、进阶习题1. 编写一个程序,实现插入排序算法。
解答:```matlabfunction sorted_array = insertionSort(array)n = length(array);for i = 2:nj = i - 1;while j > 0 && array(j) > keyarray(j+1) = array(j);j = j - 1;endarray(j+1) = key;endsorted_array = array;end```2. 编写一个程序,实现矩阵的转置。
解答:```matlabfunction transposed_matrix = transposeMatrix(matrix) [m, n] = size(matrix);transposed_matrix = zeros(n, m);for i = 1:mfor j = 1:ntransposed_matrix(j, i) = matrix(i, j);endendend```3. 编写一个程序,实现二分查找算法。
第一次上机作业:计算clc;cleary=((2*sin(0.3*pi)*exp(3))/(1+sqrt(5)))*log10(6)1.生成等差矩阵a=[1,3,5,7…47,49];在经度[122,128]间生成70个等差数列。
a=(1:2:50) %生成等差矩阵a=[1,3,5,7…47,49]b=linspace(122,128,70) %在经度[122,128]间生成70个等差数列2.生成34均匀随机矩阵b;提取b的第3行第2列元素赋值为5,求b中最小值、平均值;提取b的第三列;b右边增添1列为 2 3 4,;删除b 的第二列。
b=rand(3,4) %生成3×4均匀随机矩阵bb(3,2)=5 %提取b的第3行第2列元素赋值为5m=min(b(:)) %求b中的最小值n=mean(b(:)) %求b中的平均值a=b(:,3) %提取b的第三列b(:,5)=[2 3 4] %在b右边增添1列为2 3 4b(:,2)=[] %删除b的第二列3.在区间x=[0,2]内做sin(x)图;按x、sin(x)、cos(x)存成3列到data.txt文档;再读取文件data.txt,用读取的数据做cos(x)图。
x=0:0.1*pi:2*pim=sin(x)n=cos(x)plot(x,m,'r--*') %做sin(x)图像a=[x;sin(x);cos(x)]'save -ascii data.txt a %按x、sin(x)、cos(x)存成3列到data.txt文档q=load('data.txt') %读取文件data.txtplot(q(:,1),q(:,3)) %用读取的data.txt做cos(x)图第二次上机作业:1.生成34,[-1,1]间的随机矩阵A;求A矩阵中的元素总个数,将A中小于0的元素等于1;再取出A中大于0.2并小于0.7的元素。
clc;clearA= -1+(1+1)*rand(3,4) %生成3×4,[-1,1]间的随机矩阵Alength(A(:)) %求A矩阵中的元素总个数A(A<0)=1 %将A中小于0的元素等于1A(A>0.2&A<0.7) %取出A中大于0.2并小于0.7的元素2.X在[0:0.1: 2]内,求值;并作y>0是x-y折线图。
clc;clearx=0:0.1:2*pi %X在[0:0.1: 2π]内y=cos(x.^2) %求y=cos(x^2 )值a=find(y>0) %y>0m=x(a);n=y(a);plot(m,n,'r--*') %作x-y折线图3.首先由计算机随机产生一个[1,100]之间的一个整数,然后由用户猜测所产生的这个数。
根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“You won!”,同时退出这个游戏,如果用户7次还没有猜出,则显示“You lost!”,并显示出那个随机数。
(用while编写)clc;clearx=round(1+(100-1)*rand(1,1)); %随机产生一个[1,100]之间的一个整数n=1;while n<8y=input(['你还有:',num2str(7-n+1),'次机会,请输入一个数: ']);if y>xdisp ('High')endif y<xdisp ('Low')endif y==xdisp ('You won!!!')breakendn=n+1;endif y~=xdisp('You lost...')xend4.编写函数(如果输入x不是正整数,不执行函数,并给出提示),在程序中调用,并求出值。
函数部分:function s=myfun(n)if abs(n)~=round(n)disp('error!!!');returnend %如果输入x不是正整数,不执行函数,并给出提示s=0;for i=1:n;s=s+1/(2*i-1);endend调用部分:clc;cleary=(mufun(5)^6)/((myfun(28)-1)^(1/3)) %求出y=〖f(5)〗^6/√(f(28)-1)值5.文件climate.txt中4列分别为年、月、当月水温、平均水温,请统计30年间(1981-2011)平均4个月间(3-6月份)当月水温减去平均水温,并作图。
clc;cleardata=load('data\climate.txt');a=data(:,3)-data(:,4);i=0;for yy=1981:2011yn=find((data(:,1)==yy)&((data(:,2)>2)&(data(:,2)<7)));i=i+1;tt(i)=mean(a(yn))endv=ttu=1981:2011plot(u,v)第三次上机作业:1.分别用符号表达式和多项式两种方法求:(1),x=你们学号的值;(2)f(x)=0时的解。
clc;clearsyms x; %符号表达式法f=2*x^2+x-4;subs(f,x,1429421)a=solve(f==0,x)m=[2,1,-4]; %多项式法x=1429421;y=polyval(m,x)n=roots(m)2.求,f(x)=的一阶导数,计算f(x)在区间[0,1]之间的定积分。
clc;clearsyms x;f1=log(1+2*x)/(sin(3*x));a=limit(f1,x,2) %求的值f2=x/((cos(x))^2);b=diff(f2,x) % f(x)=的导数c=int(f2,x,0,1) % f(x)=在区间[0,1]之间的定积分3.用ezplot绘制方程f(x)=+在区间[-10,1]图,并求f(x)=0的至少两个解。
clc;clearsyms x;f=sin(x)+2^x;ezplot(f,[-10 1]) % 用ezplot绘制方程f(x)=sinx+2^x在区间[-10,1]图a1=fzero('sin(x)+2^x',[-9.5 -9])a2=fzero('sin(x)+2^x',[-6.5 -6]) %求f(x)=0的至少两个解4.已知测定鲐鱼仔幼鱼17个月(每个月按30天计)之内的体长为下表(单位:cm),用4种不同的差值方法和三次多项式拟合方程求每隔10天的体长,并分别画出对比图。
clc;cleart=[0 1 2 4 7 9 12 13 15 17];L=[0.3 1.5 3.9 6.6 11.7 15.6 18.8 19.6 20.6 21.1];subplot(3,2,1)plot(t,L,'*')title('原图')p=polyfit(t,L,3);ti=0:1/3:17;Li=polyval(p,ti);subplot(3,2,2)plot(t,L,'*')hold onplot(ti,Li,'-')title('拟合')L1=interp1(t,L,ti,'n');subplot(3,2,3)plot(t,L,'*',ti,L1)title('nearest')L2=interp1(t,L,ti,'l');subplot(3,2,4)plot(t,L,'*',ti,L2)title('linear')L3=interp1(t,L,ti,'s');subplot(3,2,5)plot(t,L,'*',ti,L3)title('spline')L4=interp1(t,L,ti,'c');subplot(3,2,6)plot(t,L,'*',ti,L4)title('cubic')5.cjk_dep.dat为长江口海域水深,请绘制经度[120 126]、纬度[28 34]海域内的20、50、100m等深线图。
clc;cleardata=load('data_2\cjk_dep.dat');lat=data(:,1);lon=data(:,2);dep=data(:,3);xlat=min(lat):0.1:max(lat);xlon=min(lon):0.1:max(lon);xdep=griddata(lon,lat,dep,xlon',xlat);[c h]=contourf(xlon,xlat,xdep,[20 50 100],'color','k')clabel(c,h,'color','r')hold onaxis([120 126 28 34])colorbarcolormap(jet(8))第四次上机作业:1.文件larvae.xls为鲐鱼幼鱼在运输过程中某时刻记录,绘制该时刻位于经度[124 127]之间体长频数直方图,28°N以北幼鱼的地理分布图(散点图,先筛出数据,再绘图)。
clc;clear;clfdat=xlsread('larvae.xls','data');lat=dat(:,1);lon=dat(:,2);dep=dat(:,3);len=dat(:,4);a=find((lat>=124)&(lat<=127));len(a);hist(len(a),12)title('鲐鱼幼鱼体长频数直方图','fontsize',20)xlabel('鲐鱼幼鱼体长')ylabel('鲐鱼幼鱼体长频数')b=find(lon>=28);lat(b);lon(b);plot(lat(b),lon(b),'.')hold onboundaxis([120 130 27.5 32.5])title('28N以北鲐鱼幼鱼地理分布图','fontsize',20)2.文件cjk.nc为模型输出的长江口netcdf数据,绘制24个小时node=5019所有层平均的水温波动折线图;在地图上绘制cell=10661(第2层)和cell=1231(第7层)的24个小时的流场变动图;绘制time=9时刻整场的温度等值线(表层)、盐度假色彩图(所有层平均)、流场图(第3层)(标注尺度大小)。