MATLAB几个简单问题求解,好的话加分啊

2024年11月16日 23:42
有3个网友回答
网友(1):

1、没看明白题意


2、命令为x=0:0.1*pi:4*pi,解释:0表示起始值,0.1*pi表示步长,4*pi表示终止值;若0.1*pi空着,即指令为x=0:4*pi,则步长默认为1,以0为初值,x的范围不超过4*pi,例如x=1:2.5,则x=[1 2],注意pi为matlab里表示π的常量。


3、x=logspace(0,2,3)生成x=[1 10 100];该指令表示对范围[0,2]均匀分成三个值0、1、2,然后以10为幂,对他求0、1、2的指数,即10^0=1,10^1=10,10^2=100;


4、指令为A=[4 2 3 4;16 6 7 8;9 10 11 12;1 14 15 5],B=A(:,[1,3]);首先通过第一条指令可得A为4*4的矩阵,第二条指令的(:,[1,3])是以中间的逗号(第一个逗号)为分界,逗号前面为指定所选取的行的范围,后面为所选取的列的范围,该:(冒号)表示取A矩阵的所有行,等价于B=A(1:end,[1,3]);1:end表示取第一行到最后一行,相应的[1,3]表示取A矩阵的第一列和第三列,


5、 A=linspace(2,18,9)跟x=logspace(0,2,3)类似,只不过前者是线性划分,后者是指数划分,同理该指令先将[2,18]均匀分成9个值,由于是取线性值,所以结果仍为这9个值

 指令B=reshape(A,3,3)表示把矩阵A作为对象,将A整合为3*3的矩阵,赋值给B,整合方式为按元素序号来排列,A中第一个元素为2,第二个元素为4,。。。以此类推第九个元素为18。而二维矩阵是按列来排序的,即数完第一列,才能数第二列,

可以看到A和B中序号相同的元素也相等,只是两者的矩阵结构不一样而已,A是1*9的矩阵,B是3*3的矩阵,但是你会发现1*9=3*3,这也是reshape指令应用的注意地方。

网友(2):

这几个问题很简单
1 A是4*4的矩阵,B是二维向量,不知道你要进行什么运算?
2 X= 0:0.1*pi: 0.4*pi 冒号的前后分别代表区间的开始和结束位置,冒号中间就是步长,如果冒号中间不写的话,默认步长是1
3 logspace是生成10的n次方的方法,前两个参数0,2是区间的始末,3是分成3份,这条命令是生成10^0=1,10^1=10,10^2=100,也就是说如果是logspace(0,2,5)的话,生成的数是5个,分别是10^0,10^0.5,10^1,10^1.5,10^2
4 A是4*4的矩阵,B=A(:,1,3)显然是错的,因为A是二维的矩阵,所以只能有两个参数,冒号放在前面代表所有行,冒号放在后面代表所有列,比如B=A(:,3)是说B=A的所有行和第三列的矩阵,就是3,7,11,15
5 linspace是线性的划分,linspace(2,18,9)意思是将2-18平均分成9份,那分别就是
2 4 6 8 10 12 14 16 18
B=reshape(A,3,3)就是把A打包成3*3的矩阵(既然打包成3*3的矩阵,说明A必须是一个9个数的向量)
2 8 14
4 10 16
6 12 18

这应该说的够详细了吧,望采纳啊!

网友(3):

搞笑啊,matlab有什么解答过程的。难道你还要进入具体的函数,看函数的执行过程,逐步输出结果?这几个题,说白了就是考matlab的矩阵相关的基本运算,记住、会用自然就答得上来,回答的也就是一个答案,有毛个过程。