3 MatLab练习题-程序设计
matlab编程考试题及答案

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程序设计与应用习题

X =
1 1 1 0
2.11设a=[0 100],求~a的值?(非运算)
答:>> clear
>> a=[0 1 0 0]
a =
0 1 0 0
>> x=not(a)
x =
1 0 1 1
2.12设a=[0 120],b=[21 0 0],求axor b的值?
答:>> clear
答:>> clear
>> a=[0 2 1 0]
a =
0 2 1 0
>> b=[2 1 0 0]
b =
2 1 0 0
>> x=and(a,b)
x =
0 1 0 0
2.10设a=[0 120],b=[120 0],求a|b的值?(或运算)
答:
>> clear
>> a=[0 1 2 0];b=[1 2 0 0];
答:quit:关闭MATLAB。
clear:清除内存中的变量。
cla:清除坐标。
clf:清除图形。
clc:清除MATLAB命令窗口的所有显示信息。
hold:控制当前图形窗口是否被刷新。
1.9学会打开并保存程序编辑窗口,并在M文档中编写1.4的运算程序并进行运算。
答:要打开程序编辑窗口,我们可以在Command Window窗口中,单击工具栏中最左端显示为一张白纸的工具按钮。这样就打开了一个空白的程序编辑窗口,如图1-6所示。
3.6已知
将a(2,3)=-1替换为a(2,3)=0。
答:
3.7已知
将a的第二行元素全部替换为0,然后将第二列元素全部替换为1。
matlab程序设计例题及答案

matlab程序设计例题及答案1.编写程序:计算1/3+2/5+3/7+……+10/21法一: s=0;for i=1:10s=s+i/(2*i+1); end ss =法二:sum((1:10)./(3:2:21)) ans =2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。
s=0;for i=1:100if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end ss =2103.画出y=n!的图,阶乘的函数自己编写,禁用MATLAB 自带的阶乘函数。
x=1:10; for i=1:10try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)106123456789104.一个数恰好等于它的因子之和,这个数就称为完数。
例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。
编程找出20XX以内的所有完数。
g=;for n=2:20XX s=0;for r=1:n-1if mod(n,r)==0 s=s+r; end endif s==ng=[g n]; end end gg =6 28 4965.编写一个函数,模拟numel函数的功能,函数中调用size函数。
function y=numelnumel(x) m=size(x); y=m(1)*m(2);numelnumel([1 2 3;4 5 6])ans =66. 编写一个函数,模拟length函数的功能,函数中调用size函数。
function y=lengthlength(x) m=size(x);y=max(m(1),m(2));lengthlength([1 2 3;4 5 6])ans =37.求矩阵rand的所有元素和及各行平均值,各列平均值。
s=rand(5);sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s)sum =mean2 =mean1 =8.编程判断1001,1003,1007,1009,1011为素数,若不是,输出其约数。
matlab考试题目及答案

matlab考试题目及答案1. 题目:编写一个MATLAB函数,实现计算并返回一个向量中所有元素的平方和。
答案:以下是一个简单的MATLAB函数,用于计算并返回一个向量中所有元素的平方和。
```matlabfunction sumOfSquares = calculateSumOfSquares(vector)sumOfSquares = sum(vector.^2);end```2. 题目:给定一个3x3的矩阵A,使用MATLAB编写代码,求出矩阵A 的转置。
答案:可以通过简单的转置操作来求得矩阵A的转置。
```matlabA = [1 2 3; 4 5 6; 7 8 9];A_transpose = A';```3. 题目:编写一个MATLAB脚本,实现对一个二维数组进行排序,并返回排序后的数组。
答案:以下是一个MATLAB脚本,用于对一个二维数组进行排序,并返回排序后的数组。
```matlabfunction sortedArray = sort2DArray(array)sortedArray = sort(array(:));end```4. 题目:给定一个向量x,使用MATLAB编写代码,计算并返回向量x的元素个数。
答案:可以通过内置函数`numel`来计算向量x的元素个数。
```matlabx = [1, 2, 3, 4, 5];numElements = numel(x);```5. 题目:编写一个MATLAB函数,实现计算并返回两个向量元素的点积。
答案:以下是一个简单的MATLAB函数,用于计算两个向量的点积。
```matlabfunction dotProduct = calculateDotProduct(vector1, vector2)dotProduct = dot(vector1, vector2);end```6. 题目:给定一个矩阵B,使用MATLAB编写代码,求出矩阵B的行列式。
matlab试题及答案

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程序设计及应用习题

MATLAB 程序设计及应用习题二维平面绘图1. 椭圆的参数表示为⎩⎨⎧==)sin()cos(t b y t a x ,请利用这个公式画一个椭圆,其中a=5,b=3要求椭圆上有100个点。
2. Chebysheve 多项式的定义如下:11)),(cos cos(1≤≤-=-x x m y ;当m 的值从1变化到5时,得到五条曲线。
请将这五条曲线画在同一张图上。
使用legend 命令来标记每一条曲线。
3. 用contour 命令画出下列隐函数:2522=+y x 。
提示:画出函数:22y x z +=高度为25的等高线。
三维立体绘图1. 请利用surf 命令画出函数:)ex p(*22y x x z --=的图形。
其中x 在[-2,2]范围内均匀取21个点,y 在[-1,1]范围内均匀取21个点。
2. 一个空间的椭球可以表示为1222222=++cz b y a x ,请使用任何方法画出一个空间的光滑的椭球。
其中a=3,b=4,c=8。
3. 画出函数)cos()2/sin(),(y x y x f =的曲面图和等高线图,其中x 在[-2π,2π]范围内均匀取21个点,y 在[-1.5π,1.5π]范围内均匀取31个点。
用subplot(2,1,1)和subplot(2,1,2)将的曲面图和等高线图画在一个窗口中。
特殊图形1. 以下是某学校信息系各年度的人员组成表,请分别用bar 和bar3画出上述数据的统计图。
2. 请使用上题的数据作出(1)按每年度人数来划分的立体扇形图,并加上适当的说明。
(2)按每种类别人数来划分的立体扇形图,并加上适当的说明。
图象的显示与读写1.读入文件clown.mat中的小丑图象,显示图象,并将调色板colormap改为grey,你会发现图象偏暗,请调整调色板,使其亮度提高。
2.读入文件clown.mat中的小丑图象,显示图象,请调整调色板,使得显示的图象由全黑或全白的象素做成,且其个数的比例大约是1:1。
MATLAB程序设计与应用题目

第1章 MATLAB 概论1.1 与其他计算机语言相比较,MA TLAB 语言突出的特点是什么? 1.2 MA TLAB 系统由那些部分组成?1.3 安装MATLAB 时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 1.4 MA TLAB 操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?1.5 如何启动M 文件编辑/调试器?1.6 存储在工作空间中的数组能编辑吗?如何操作?1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 1.9 在MA TLAB 中有几种获得帮助的途径?第2章 MATLAB 矩阵运算基础2.1 在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? 2.2 有几种建立矩阵的方法?各有什么优点?2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求? 2.4 数组运算和矩阵运算的运算符有什么区别?2.5 计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。
2.6 求⎥⎦⎤⎢⎣⎡+-+-+-+-++=i 44i 93i 49i 67i 23i 57i 41i 72i 53i 84x 的共轭转置。
2.7 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
2.8 “左除”与“右除”有什么区别?2.9 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
2.10 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。
2.11 ⎥⎦⎤⎢⎣⎡-=463521a ,⎥⎦⎤⎢⎣⎡-=263478b ,观察a 与b 之间的六种关系运算的结果。
matlab编程考试题及答案

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`函数计算结果的绝对值。
matlab 程序设计 例题

一、概述Matlab是一种强大的工程计算软件,在工程领域有着广泛的应用。
对于学习Matlab程序设计来说,通过例题学习是非常有效的方法。
通过实际的例题练习,可以帮助学生更深入地理解Matlab的基本原理和应用技巧。
本文将介绍几个常见的Matlab程序设计例题,并进行详细的分析和讲解,希望能够帮助读者加深对Matlab程序设计的理解。
二、例题一:矩阵运算题目:编写一个Matlab程序,实现两个任意大小的矩阵相加的运算。
1.我们需要定义两个任意大小的矩阵A和矩阵B,可以通过rand函数生成随机矩阵,也可以手动输入矩阵的元素。
2.编写Matlab程序,使用矩阵的加法运算符“+”进行矩阵相加操作。
3.输出矩阵相加的结果,并进行验证和检查。
通过这个例题,可以加深对Matlab矩阵运算的理解,包括矩阵的定义、矩阵相加的操作和结果输出的方法。
三、例题二:函数绘图题目:编写一个Matlab程序,绘制sin函数的曲线图像。
1.我们需要定义sin函数的自变量范围和取值步长,可以使用linspace函数生成自变量的取值范围。
2.编写Matlab程序,调用sin函数计算自变量对应的函数值。
3.接下来,使用plot函数绘制sin函数的曲线图像,并设置图像的标题、坐标轴标签等其他参数。
4.输出绘制好的sin函数曲线图像,并进行观察和分析。
通过这个例题,可以了解Matlab中函数绘图的基本方法,包括自变量的定义、函数值的计算和图像的绘制等操作。
四、例题三:数值积分题目:编写一个Matlab程序,实现对指定函数在指定区间上的数值积分。
1.我们需要定义积分的目标函数和积分区间,在Matlab中可以使用function定义目标函数,也可以手动输入目标函数和积分区间。
2.编写Matlab程序,调用Matlab内置的数值积分函数(如quad、quadl等)进行数值积分的计算。
3.输出数值积分的结果,并与解析解进行比较和分析。
通过这个例题,可以了解Matlab中数值积分的计算方法,包括目标函数的定义、积分区间的设定和数值积分函数的调用。
MATLAB程序设计期末复习题集

第1章 MATLAB系统环境一、选择题1.最初的MATLAB核心程序是采用()语言编写的。
A.FORTRAN B.C C.BASIC D.PASCAL2.2016年3月发布的MATLAB版本的编号为()。
A.MATLAB 2016Ra B.MATLAB R2016aC.MATLAB 2016Rb D.MATLAB R2016b3.下列选项中能反应MATLAB特点的是()。
A.算法最优 B.不需要写程序C.程序执行效率高 D.编程效率高4.当在命令行窗口执行命令时,如果不想立即在命令行窗口中输出结果,可以在命令后加上()。
A.冒号(:) B.逗号(,) C.分号(;) D.百分号(%)5.如果要重新执行以前输入的命令,可以使用()。
A.左移光标键(←) B.右移光标键(→)C.下移光标键(↓) D.上移光标键(↑)6.MATLAB命令行窗口中提示用户输入命令的符号是()。
A.> B.>> C.>>> D.>>>>7.plot(x,y)是一条()命令。
A.打印 B.输出 C.绘图 D.描点8.以下两个命令行的区别是()。
>> x=5,y=x+10>> x=5,y=x+10;A.第一个命令行同时显示x和y的值,第二个命令行只显示x的值B.第一个命令行同时显示x和y的值,第二个命令行只显示y的值C.第一个命令行只显示x的值,第二个命令行同时显示x和y的值D.第一个命令行只显示y的值,第二个命令行同时显示x和y的值9.下列命令行中,输出结果与其他3项不同的是()。
A.>> 10+20+... B.>> ...30 10+20+30C.>> 10+20+30%5 D.>> %10+20+3010.下列选项中,不是MATLAB帮助命令的是()。
A.lookfor B.lookfor –all C.search D.help二、填空题1.MATLAB一词来自的缩写。
matlab编程经典例题

例3-9 已知 ,当n=100时,求y的值。 程序如下: y=0; n=100; for i=1:n y=y+1/(2*i-1); end y
在实际MATLAB编程中,采用循环语句会 降低其执行速度,所以前面的程序通常由 下面的程序来代替: n=100; i=1:2:2*n-1; y=sum(1./i); y
2.while语句 while语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行 循环体语句,执行后再判断条件是否 成立,如果不成立则跳出循环。
例3-11 从键盘输入若干个数,当输入0时结束输入,求这 些数的平均值和它们之和。 程序如下: sum=0; cnt=0; val=input('Enter a number (end in 0):'); while (val~=0) sum=sum+val; cnt=cnt+1; val=input('Enter a number (end in 0):'); end if (cnt > 0) sum mean=sum/cnt end
3.程序的暂停 暂停程序的执行可以使用pause函数, 其调用格式为: pause(延迟秒数) 如果省略延迟时间,直接使用pause, 则将暂停程序,直到用户按任一键后 程序继续执行。 若要强行中止程序的运行可使用 Ctrl+C命令。
3.2.2 选择结构 1.if语句 在MATLAB中,if语句有3种格式。 (1) 单分支if语句: if 条件 语句组 end 当条件成立时,则执行语句组,执行完之后 继续执行if语句的后继语句,若条件不成立, 则直接执行if语句的后继语句。
(3) 多分支if语句: if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组n end 语句用于实现多分支选择结构。
matlab程序设计与应用习题答案

matlab程序设计与应用习题答案Matlab程序设计与应用习题答案Matlab是一种强大的数学软件,被广泛应用于科学计算、数据分析和工程模拟等领域。
无论是学术界还是工业界,Matlab都扮演着重要的角色。
在学习和应用Matlab时,我们常常会遇到一些习题,下面我将为大家提供一些常见习题的解答。
习题一:编写一个Matlab程序,计算一个数列的和。
数列的定义如下:a(1) = 1, a(n) = a(n-1) + 2*n, 其中n大于等于2。
解答一:```matlabfunction sum = calculate_sum(n)a = zeros(1, n);a(1) = 1;for i = 2:na(i) = a(i-1) + 2*i;endsum = sum(a);end```习题二:编写一个Matlab程序,求解一个线性方程组。
方程组的定义如下:2x + 3y + z = 7, 3x - 2y + 2z = 5, x + y - z = 3。
解答二:```matlabfunction [x, y, z] = solve_equations()A = [2, 3, 1; 3, -2, 2; 1, 1, -1];b = [7; 5; 3];solution = A\b;x = solution(1);y = solution(2);z = solution(3);end```习题三:编写一个Matlab程序,实现矩阵的转置操作。
解答三:```matlabfunction transposed_matrix = transpose_matrix(matrix) [m, n] = size(matrix);transposed_matrix = zeros(n, m);for i = 1:mfor j = 1:ntransposed_matrix(j, i) = matrix(i, j);endendend```习题四:编写一个Matlab程序,实现矩阵的相乘操作。
(完整版)matlab基础练习题(带答案)

Matlab 基础练习题常量、变量、表达式1、 MATLAB 中,下面哪些变量名是合法的?( )(A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。
(A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( )(A )eps (B )none (C )zero (D )exp4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放一个中文字符‘啊’需要占用2个字节。
( 错,都是2个字节 )5、 判断:MA TLAB 中,i 和j ( 对 )6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。
( 错,后面还有很多位小数 )7、 在MA TLAB 中,若想计算的51)3.0sin(21+=πy 值,那么应该在MA TLAB 的指令窗中输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。
8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字节。
9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。
数组1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序的逆序排列输出,应该使用下面的( )指令。
(A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB的命令是( )。
(A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A)3、 在MATLAB 中,用指令x=1:9生成数组x 。
Matlab考试题库及答案(教师出卷参考专用)

Matlab考试题库及答案(教师出卷参考专用)一、选择题1.以下哪个函数用于在Matlab中创建一个图形窗口?A. figureB. plotC. graphD. window答案:A2.在Matlab中,以下哪个选项可以用来定义一个矩阵?A. A = [1 2 3; 4 5 6]B. A = (1, 2, 3, 4, 5, 6)C. A = {1, 2, 3, 4, 5, 6}D. A = 1 2 3; 4 5 6答案:A3.以下哪个函数用于求解线性方程组Ax=b?A. solveB. linsolveC. solve(A, b)D. linsolve(A, b)答案:D4.在Matlab中,如何计算矩阵A和矩阵B的乘积?A. A BB. A \ BC. A . BD. A .\ B答案:A5.以下哪个函数用于在Matlab中绘制三维散点图?A. scatterB. scatter3C. plot3D. bar3答案:B二、填空题1.在Matlab中,要创建一个名为"myfig"的图形窗口,可以使用______函数。
答案:figure('Name', 'myfig')2.在Matlab中,要计算矩阵A的行列式,可以使用______函数。
答案:det(A)3.在Matlab中,若要计算变量x的平方,可以使用______运算符。
答案:.^24.在Matlab中,若要计算矩阵A的逆矩阵,可以使用______函数。
答案:inv(A)5.在Matlab中,要绘制一个正弦波形,可以使用______函数。
答案:plot(sin(x))三、判断题1.在Matlab中,矩阵的索引从1开始计数。
()答案:正确2.在Matlab中,可以使用逻辑运算符"&&"和"||"。
()答案:错误3.在Matlab中,矩阵乘法满足交换律。
matlab练习题及答案详解附程序

Matlab练习题及答案详解1、下表为8组坐标x 4.22■7.926.56 8.4 9 6.79 '7.43 6.55 7. 06y 9.16 ! 9.590. 36 9.3 4 7.58 3.92 1.71 0. 321)算出任意两点间的空间距离,得到任意两点距离表;2)把任意两点距离的表中,自己到自己的距离,转变成无穷大clc clearclose alldata=xlsread( 'ti1.xls' );% 从excel 里导入数据x=data(1,:);%将data里第一行的所有列赋值给xy=data(2,:);%将data里第二行的所有列赋值给xn=length(x);% 表x 的长度dis=zeros( n,n);% 对距离表进行初始化for i=1: nfor j=1: ndis(i,j)=sqrt((x(i)-x(j))A2+(y(i)-y(j))A2);% 平面坐标距离公式endenddis(dis==0)=inf;% 将距离表中为0的数值,变成无穷大redis二dis;2、按要求步骤,操作下表基础题要求:1)对每列进行[0,1]区间化x' (x min(x))/(max min(x));2)把区间化后的表的右边3列,连接在左边3列下边,构成16行3列的表;3)把16行3列进行转置,得到3行16列的表。
然后对列进行操作,把3行16列的表变成一列,后转置成一行,得到最终的结果。
clcclearclose allx=load('ti2.txt');% 从txt 里导入数据big=max(x);small=min( x);% 算出每列的最大最小值[m,n]=size(x);% 表x的行和列的大小newx仁zeros(m,n);%对newx1进行初始化,大小和初始x 一样大for i=1: nn ewx1(:,i)=(x(:,i)-small(i))./(big(i)-small(i));endnewx2=zeros(2*m,n/2);%对最新的表进行初始化大小为,行为newx1的2倍,列为一半newx2(1:m,1:n/2)=newx1(1:m,1:n/2);% 把左边3 列不操作的值,直接赋值给newx2上边newx2(m+1:end,1:n/2)=newx1(1:m,n/2+1:end);% 把右边的3 列,赋值给n ewx2下边[p,q]=size(newx2);% 表newx2的行和列的大小newx3=zeros(p*q,1);% 对newx3进行初始化for j=1:qnewx3((j-1)*p+1:j*p,1)=newx2(:,q);% 对newx3进行操作end% n ewx3二reshape (n ewx2,[],1); renewx=newx3';%最终的结果3、数值运算1)用matlab求下列式子极限X24arccos(x)f(x,y) ye2 ydxdy2」x2 3=1一重积分 二重积分re1a=limit(y,x,64) %====3.1.b=== syms x y=((x^2-2*x+4)八(1/2)-2)/x; re1b=limit(y,x,0) %===求导数 %====3.2.a=== syms xf=(si n( x A2+1))A2;re2a=diff(f,x)% 对 x 求导 %====3.2.b=== syms x y f=y*exp(acos(x));re2bx=diff(f,x)% 对 x 求偏导 re2by=diff(f,y)% 对 y 求偏导 %===求定积分 === %====3.3.a=== syms xre3a=int((x+2)/(2*x+1)A(1/2),x,0,4)% %====3.3.b === syms x yre3b=int(int(y/(xA2-1),x,-2,-sqrt(2)),y,1,3)%二、 提高题1、画一个正五边形,边长自定i »lr'M't _____________________ t _____________ | _____________ | _____________ i4 0 41 O图1:示例一clcclose alla=100;b二a/(2*si n(36/180*pi));x二b*[-cos(18/180*pi) 0 cos(18/180*pi).…sin(36/180*pi) -sin(36/180*pi)-cos(18/180*pi)];y=b*[si n(18/180*pi) 1 si n(18/180*pi).…-cos(36/180*pi) -cos(36/180*pi)sin(18/180*pi)];plot(x,y,'li newidth',2)text(-b/4,0,' 正五边形','fontsize',20) text(O,O,'y二','num2str(p(1))')axis([-b-b/5 b+b/5 -b-b/5 b+b/5])axis equal box off2、模拟小球的斜抛,模拟参数自定,画出速度图像图2 :示例clearclose allg=9.8;v0=10;theta二pi/4;detat=O.O1;x=0;y=0;t=0;X=[]; Y=[];V=[];T=[]; vy=v0*s in( theta);vx二vO*cos(theta);h=plot(x,y,'r.','markersize',50); while y>=0delete(h)vx=vx-0*detat;vy=vy-g*detat;v=sqrt(vx A2+vy A2);x=x+vx*detat;y=y+vy*detat;t=t+detat;%== 图形控制部分subplot(3,1,1) plot(x,y,'.b')h=plot(x,y,'r.','markersize',50); hold ontitle('x-y','fontsize',14) axis([0 11 0 3]);box off subplot(3,1,2) plot(x,v,'.R','markersize',5) hold on title('x-v','fontsize',14) axis([0 11 6 v0+1]);box off subplot(3,1,3)plot(t,v,'.g','markersize',5) hold on title('t-v','fontsize',14)axis([0 1.55 6 v0+1]);box offpause(0.05)X=[X,x];Y=[ Y,y];V=[V,v];T=[T,t];endp=polyfit(X, Y,2)3、在1的基础上,加上空气阻力的影响,空气阻力大小与速度的平方成正比,f k|v2(比例系数自己定,也可以上网查,建议取0.5),画出速度图像图3:示例三clcclearclose allg=9.8;v0=10;theta二pi/4;detat=0.01; x=0;y=0;t=0;X=[];Y=[];V=[];T=[]; vy=v0*sin(theta); vx=v0*cos(theta);k=0.5;m=2; h=plot(x,y,'r.','markersize',50); while y>=0 delete(h)vx二vx-(k*vx^2)/m*detat;vy二vy-g*detat-(k*vy^2)/m*detat;v=sqrt(vx A2+vy A2);x=x+vx*detat;y=y+vy*detat;t=t+detat;%== 图形控制部分subplot(3,1,1) plot(x,y,'.b')h=plot(x,y,'r.','markersize',50); hold ontitle('x-y','fontsize',14) axis([0 11 0 3]);box off subplot(3,1,2) plot(x,v,'.R','markersize',5) hold ontitle('x-v','fontsize',14) axis([0 11 3 v0+1]);box offsubplot(3,1,3) plot(t,v,'.g','markersize',5) hold ontitle('t-v','fontsize',14) axis([0 2.75 3 v0+1]);box offpause(0.1)X=[X,x];Y=[Y,y];V=[V,v];T=[T,t];endp=polyfit(X,Y,2)4、画一个叠的圆环,圆环参数自定clear;n=i nput('圆的层数:');r=5;%圆的半径theta=li nspace(0,2*pi);x=r*cos(theta);y=r*s in( theta);figure,title(' 叠的圆环','fontsize',14)axis equalgrid onhold on;forj=1: nb=(1+sqrt(3)*(j-1))*r;% 圆心bfor i=1: n+1-ja=(2*(i-1)+j)*r;% 圆心aplot(x+a,y+b)end end5、模拟两个小球在水平面上,进行完全弹性碰撞过程,分析两个小球构成系统的机械能随时间的变化,小球参数自定。
(完整版)MATLAB程序设计复习题

(完整版)MATLAB程序设计复习题《M ATLA龍序设计》复习题一填空题1已知A=[2 5 6;1 7 8];B=[1 4 3;4 7 0]; 写出下列各指令运行的结果。
A & B的运行结果为[1 1 1;1 1 0] _____________________ 。
A== B的运行结果为[0 0 0 ;0 1 0] ______________ 。
2产生3阶单位阵的命令为eye(3);产生4阶全1方阵的命令为ones(4)。
3 A=rand(5,8);b=size(A);c=length(A) ;贝9 b 和c 的值分别为[5,8]和8。
4求矩阵的特征值的指令为eig _______ 。
5符号;可以使命令行不显示运算结果, % 用来表示该行为注释行。
6在线形图型格式的设置中,字符r表示什么颜色(红色)7 fix函数四舍五入对数组[3.17 , 5.34 , 8.90 , 2.52]取整,结果为[3 58 2] 。
8 P, Q 分别是个多项式的系数矢量,求P对应的多项式的根,使用的命令是roots(P) _______9使2个plot的图形在同一个坐标显示,使用hold on 命令进行图形保持,使用grid on ______ 命令为图形添加网格。
10数据拟合采用_polyfit_ 函数;求不定积分采用—jnt_ 函数。
11 A=rand(2,5);b=size(A);c=length(A) ;则b 和c 的值分别为_2 5 和5__ 12已知A是矩阵,求A的对角矩阵函数是___diag(A) ,求A 的下三角矩阵函数是tril(A) 。
13条形图由函数bar 来实现。
14已知s='显示"hey ”’,则s的元素个数是9二解答题1、A=[71 , 3, -8; 2 , -9 , 8; 0 , 4, 5]B=A'问B=( )答案:B=[71 , 2, 0; 3 , -9 , 4 ; -8 , 8, 5]2、A=[1,2;3,4];B[1,0;0,1]; 请问A*B=? ,A.*B= ?答案:A*B=[1,2;3,4],A.*B=[1,0;0,4]3、A=[57, 19, 38; -2 , 31 , 8; 0 , 84, 5]B=rot90(A)B=()答案:B=[38 , 8, 5; 19 , 31, 84; 57 , -2 , 0] 4、已知:A=[2,2,-1,1; 4,3,-1,2; 8, 5,-3,4; 3,3,-2,2]R=ra nk(A)R=()A=[2,2,3; 4 ,5 ,-6; 7 , 8 , 9]trace(A)=( )答案:4;165、A=[0 ,0, 0; 0 ,1, 0; 0 , 0 , 1]pin v(A)= ()答案:[0 ,0 ,0; 0 ,1, 0; 0 , 0 , 1]三下列命令执行后,L1, L2, L3, L4的值分别是多少? A=1:9; B=10-A;L1=A~=B;(3 分)L2=A>=5; (3 分)L3=A>=2&A<=6; (4 分)L4=fi nd(A>4&A<=7); (5分)答案:L1 =1 1 1 1 0 1 1 1 1 L2 =0 0 0 0 1 1 1 1 1 L3 =0 1 1 1 1 1 0 0 0 L4 =5 6 7四写出执行以下代码后B, C, D的值。
MATLAB程序设计与应用

实验一 MATLAB 运算基础 第二题:已知A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡7653877344-3412 B=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡72-33021-31求下列问题:1) A+6*B 和A-B+I2) A*B 和A.*B3) A^3 A.^34) A/B B\A5) [A,B] [A(1,3),:B.^2]解:>> A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; I=[1 0 0;0 1 0;0 0 1];(1)>> A+6*Bans =18 52 -1046 7 10521 53 49>> A-B+Ians =12 31 -332 8 840 67 1(2)>> A*Bans =68 44 62309 -72 596154 -5 241>> A.*Bans =12 102 468 0 2619 -130 49(3)>> A^3ans =37226 233824 48604 247370 149188 600766 78688 454142 118820>> A.^3ans =1728 39304 -64 39304 343 658503 27 274625 343(4)>> A/Bans =16.4000 -13.6000 7.600035.8000 -76.2000 50.200067.0000 -134.0000 68.0000>> B\Aans =109.4000 -131.2000 322.8000-53.0000 85.0000 -171.0000-61.6000 89.8000 -186.2000(5)>> [A,B]ans =12 34 -4 1 3 -134 7 87 2 0 33 65 7 3 -2 7>> [A([1,3],:);B^2]ans =12 34 -43 65 74 5 111 0 1920 -5 40第三题:设有矩阵A 和BA=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡25242322212019181716151413121110987654321 B=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡111340794-23096-1716031) 求他们的乘积C2) 将矩阵C 的右下角3*2子矩阵赋给D3) 查看matlab 工作空间的使用情况解:>> A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]; B=[30 16;17 -6 9;0 23 -4;9 7 0;4 13 11];(1)>> C=A*BC =93 150 77258 335 237423 520 397588 705 557753 890 717(2)>> D=C(3:5,2:3)D =520 397705 557890 717第四题:完成下列操作:1)求【100,999】之间能被21的数的个数2)建立一个字符串向量,删除其中的大写字母解:(1)>> A=100:999;>> B=rem(A,21);>> C=length(find(B==0))C =43(2)>> A='lsdhKSDLKklsdkl';>> k=find(A>='A'&A<='Z');>> A(k)=[]A =Lsdhklsdkl实验二 MATLAB矩阵分析与处理第三题: 建立一个5 5矩阵,求它的行列式的值,迹,秩,和范数。
MATLAB实验三-选择结构程序设计

MATLAB实验报告学院:光电学院班级:073-1姓名:刘颖学号:2实验三 选择结构程序设计1. 求分段函数的值。
y=⎪⎩⎪⎨⎧--≠≠<≤+--≠<-+其他及且且,13250,653x 0,6222x x x x x x x x x x用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的值。
程序设计:x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0]if x<0&x~=-3y=x.*x+x-6;elseif x>=0&x<5&x~=2&x~=3y=x.*x-5*x+6;else y=x.*x-x-1endy运行结果:x =-5.0000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.0000 y =29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.00002.输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。
其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分一下为E 。
要求:(1)分别用if 语句和switch 语句实现。
用switch 语句实现程序设计:score=input('请输入百分制成绩:');switch fix(score/10)case {9,10}grade='A';case {8}grade='B';case {7}grade='C';case {6}grade='D';otherwisegrade='E';endgrade请输入百分制成绩:95grade =A请输入百分制成绩:86grade =B请输入百分制成绩:50grade =E用if语句实现程序设计:score=input('请输入百分制成绩:');k=fix(score/10);if k=9&k=10grade='A';elseif k=8grade='B';elseif k=7grade='C';elseif k=6grade='D';else grade='E';endgrade运行结果:请输入百分制成绩:74grade =C请输入百分制成绩:65grade =D请输入百分制成绩:21grade =E(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MatLab 练习题(3)-程序设计
班级:1班 学号:201410430124姓名:李远
注意:1、请按要求作题(即写出程序代码+结果).
2、整理好格式,排版好,不留过多的空格。
3、讲程序设计时,暂时先完成1、5、6、9、11.
4、另外8题作为思考题,若做出,可以加分。
*1, 编辑函数文件hanshu.m,该函数是32()33f x x x x =--+,并用它来计算(0.34)f 、(3)f 、(6.87)f 、2(3)(2)(4)f f f --
答案:(填写程序语句和结果)
函数文件:
hanshu.m
function f=hanshu(x)
f=x^3-3*x^2-x+3;
(1)程序:
hanshu(0.34)
hanshu(3)
hanshu(6.87)
hanshu(3)-hanshu(2)*[hanshu(-4)]^2
(2)结果:
ans =
2.3525
ans =
ans =
178.7820
ans =
33075
2,编程求一个四位数abca ,使2(51)abca c =+。
答案:(填写程序语句和结果)
程序:
for a=1:9
for b=0:9
for c=0:9
if a*1000+b*100+c*10+a==(5*c+1)^2
x=a*1000+b*100+c*10+a
end
end
end
end
x
结果:
x =
1681
3利用二分法编程求方程 03323=+--x x x 在[0,3]内的根.
答案: (填写程序语句和结果)
程序:
a=0;
b=3;
x=a:b;
f =@(x)x^3-3*x^2-x+3;
c=(a+b)./2;
while abs(b-a)>1e-6
if f(c)*f(b)<0
a=c;
else
b=c;
end
c=(a+b)./2;
x=c;
end
x
结果:
x =
1.0000
*4, 利用二分法编程求方程 tan(x)-x-0.5=0 在[0,1.5]内的根.
答案:(填写程序语句和结果)
a=0;
b=1.5;
x=a:b;
f =@(x)tan(x)-x-0.5;
c=(a+b)./2;
while abs(b-a)>1e-6
if f(c)*f(b)<0
a=c;
else
b=c;
end
c=(a+b)./2;
x=c;
end
x
结果x =
0.9750
*5,列出所有的水仙花数, 水仙花数是一个三位数,其各位数字立方和等于该数本身. 例如: 333351153++=
答案:(填写程序语句和结果)
程序:
for a=1:9
for b=0:9
for c=0:9
if a*100+b*10+c==a^3+b^3+c^3
x=a*100+b*10+c
end
end
end
end
结果:
x =
153
x =
370
x =
371
x =
407
x =
407
*6, 利用 +-+-≈7
1513114π 公式求π的近似值,直到误差小于610- 答案: (填写程序语句和结果)
程序:
s=0;
k=1;
while 1/(2*k-1)>10^(-6)
s=s+(-1)^(k+1)/(2*k-1);
k=k+1;
end
s1=4*s
s1 =
3.141590653589692
*7,写出小于5000的、立方的末四位是8888的所有自然数的程序
答案: (填写程序语句和结果)
程序:
for a=0:5000
if rem(a^3,10000)==8888
a
end
end
结果:
a =
1942
a =
4442
*8,先思考如何用推理的方法(1)求Fibonacc数列中第2007个数除以6 的余数(2)若将Fibonacc数列按如下方式分组:(1)、(1,2)、(3,5,8)、(13,21,34,55)、……问2007组数的和除以6的余数是几?然后再用matlab编程验证你的结果。
答案: (填写你的思考过程和你的结果以及matlab程序语句)
9*,应用
11
11......
2!!
e
n
≈++++近似求e之值,要求误差小于6
10-
程序:
n=1;
c=0;
m=1;
while 1/n>10^(-6);
for c=c+1;
n=n*c;
m=m+1/n;
end
m1=m;
end
m1
结果:
m1 =
2.718281801146385
10,定义一个函数shjiech计算双阶乘,要求对输入的一个整数N,该函数能立
即计算出其双阶乘。
并用它来计算200!!
答案: (填写程序语句和结果)
程序:
function jiech=shjiech(n)
if rem(n,2)==0
as=2:2:n;
else as=1:2:n;
end
jiech=prod(as);
结果:
shjiech(200)
ans =
1.1831e+188
11,定义多元函数2222()(,)()x
y f x y x y e -+=+,并用它来计算(2,3)f -、(3,4)f 、
(0,0)f ,并画出它的图形。
答案: (填写程序语句和结果)
程序:
function m=f(x,y)
m=(x^2+y^2)*exp(-x^2-y^2)
结果:
f(-2,3)
f(3,4)
f(0,0
ans =
2.9384e-005
ans =
3.4720e-010
ans
作图程序:
x=-4:0.05:4;y=x;
[X,Y]=meshgrid(x,y);
Z=(X.^2+Y.^2)*exp(-X.^2-Y.^2);
mesh(X,Y,Z)
图:
*12,编写函数文件SQRT.m a 11()2n n n
a x x x +=+,误差小于10-6。
答案: (填写程序语句和结果)
程序:
function genhaoa=sqrt1(a)
x0=1;
x1=1/2*(x0+a/x0);
while abs(x1-x0)>10^(-6)
x0=x1;
x1=1/2*(x0+a/x0);
end
genhaoa=x1。