矩阵和数组的操作 实验报告
Matlab实验报告(二)矩阵和数组操作

Matlab实验报告(二)矩阵和数组操作一、实验目的1.掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。
2.学习矩阵和数组的加减运算与乘法。
3.掌握对数组中元素的寻访与赋值,会对数组进行一般的操作。
二、预备知识1.常用的产生特殊矩阵的函数?eye(m,n) 单位阵?rand(m,n) 随机矩阵?randn(m,n) 正态分布的随机矩阵?zeros(m,n) 零矩阵?ones(m,n) 全部元素都为1的矩阵?compan(A) 矩阵A的伴随矩阵?bankel(m,n) n维Hankel矩阵?invhilb(n) n维逆Hilbert矩阵?magic(n) n维Magic矩阵?toeplitz(m,n) Toeplitz矩阵?wilkinson(n) n维Wilkinson特征值测试矩阵?handamard(n) n 维Handamard矩阵?hilb(n) n维Hilbert矩阵?kron(A,B) Kronecker 张量积?pascal(n) n维Pascal矩阵?vander(A) 由矩阵A产生Vandermonde矩阵2.通过矩阵的结构变换,获得新矩阵表2 矩阵结构变化产生新矩阵L=tril(A) L=tril(A,k) 0 U=triu(A) U主对角线及以上的元素取矩阵A的元素,其余为0 L主对角线及以下元素取矩阵A 的元素,其余为0 L及第k条对角线及以下元素取矩阵A的元素,其余为U=triu(A,k) 0 B=rot90(A) B=rot90(A,k) B=fliplr(A) B=flipud(A) B=reshape(A,m,n) U 第k条对角线及以上的元素取矩阵A的元素,其余为矩阵A逆时针旋转90°得到B 矩阵A逆时针旋转k*90°得到B 矩阵A左右翻转得到B 矩阵A上下翻转得到B 将矩阵A的元素重新排列,得到m*n的新矩阵(m*n就等于A的行列式之积。
矩阵的基本操作实验报告(3篇)

第1篇一、实验目的1. 理解矩阵的基本概念及其应用。
2. 掌握矩阵的创建、显示、赋值、转置、求逆、求行列式等基本操作。
3. 熟悉C语言在矩阵操作中的应用。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 语言:C语言三、实验内容1. 矩阵的创建与赋值2. 矩阵的显示3. 矩阵的转置4. 矩阵的求逆5. 矩阵的行列式求解6. 矩阵的加法、减法、乘法四、实验步骤1. 创建矩阵```cinclude <stdio.h>define MAX_SIZE 10int main() {int matrix[MAX_SIZE][MAX_SIZE];int row, col, i, j;printf("请输入矩阵的行数和列数:\n");scanf("%d %d", &row, &col);printf("请输入矩阵的元素:\n");for (i = 0; i < row; i++) {for (j = 0; j < col; j++) {scanf("%d", &matrix[i][j]);}}return 0;}```2. 显示矩阵```cvoid printMatrix(int matrix[][MAX_SIZE], int row, int col) { int i, j;for (i = 0; i < row; i++) {for (j = 0; j < col; j++) {printf("%d ", matrix[i][j]);}printf("\n");}}```3. 矩阵转置```cvoid transposeMatrix(int matrix[][MAX_SIZE], int row, int col, int transposed[][MAX_SIZE]) {int i, j;for (i = 0; i < row; i++) {for (j = 0; j < col; j++) {transposed[j][i] = matrix[i][j];}}}```4. 矩阵求逆```c// 略,求逆算法较为复杂,可参考相关资料```5. 矩阵的行列式求解```c// 略,行列式求解算法较为复杂,可参考相关资料```6. 矩阵的加法、减法、乘法```cvoid addMatrix(int matrix1[][MAX_SIZE], int matrix2[][MAX_SIZE], int row, int col, int result[][MAX_SIZE]) {int i, j;for (i = 0; i < row; i++) {for (j = 0; j < col; j++) {result[i][j] = matrix1[i][j] + matrix2[i][j];}}}void subtractMatrix(int matrix1[][MAX_SIZE], int matrix2[][MAX_SIZE],int row, int col, int result[][MAX_SIZE]) {int i, j;for (i = 0; i < row; i++) {for (j = 0; j < col; j++) {result[i][j] = matrix1[i][j] - matrix2[i][j];}}}void multiplyMatrix(int matrix1[][MAX_SIZE], int matrix2[][MAX_SIZE],int row1, int col1, int col2, int result[][MAX_SIZE]) {int i, j, k;for (i = 0; i < row1; i++) {for (j = 0; j < col2; j++) {result[i][j] = 0;for (k = 0; k < col1; k++) {result[i][j] += matrix1[i][k] matrix2[k][j];}}}}```五、实验结果与分析1. 创建矩阵、显示矩阵、转置矩阵等操作均能正常进行。
MATLAB中关于矩阵初等变换实验报告

实验一一、实验目的熟悉MATLAB中关于矩阵初等变换的方法及矩阵运算的各种命令二、实验内容1、启动与退出2、数、数组、矩阵的输入>> a=5a =5>> b=2-5ib =2.0000 - 5.0000i>> a=5,a =5>> b=[1,2,3,4]b =1 2 3 4>> c=1:2:11c =1 3 5 7 9 11>> d=linspace(1,11,6)d =1 3 5 7 9 11>> A=[2,3,5;1,3,5;6,9,4]A =2 3 51 3 56 9 43.矩阵大小和定位:>> A=[3,5,6;2,5,8;3,5,9;3,7,9]; >> d=numel(A)d =12>> [n,m]=size(A)n =4m =3>> [i,j]=find(A>3)i =12341234j =222233334.矩阵的块操作>> A(2,:);>> A([1,3],:);>> A(2:3,1:2)ans =2 53 5>> A=[3,5,6;2,5,8;3,5,9;3,7,9]; >> A([1,3],:)=A([3,1],:)A =3 5 92 5 83 5 63 7 9>> A(2,:)=4;>> A(find(A==3))=-3;>> A(2,:)=[]A =-3 5 6-3 5 9-3 7 9>> A=[3,5,6;2,5,8;3,5,9;3,7,9]A =3 5 62 5 83 5 93 7 9>> diag(A,1)ans =58>> tril(A,1)ans =3 5 02 5 83 5 93 7 9>> triu(A,1)ans =0 5 60 0 80 0 00 0 05.矩阵的翻转操作>> A=[3,5,6;2,5,8;3,5,9;3,7,9]; >> flipud(A)ans =3 7 93 5 92 5 83 5 6>> fliplr(A)ans =6 5 38 5 29 5 39 7 3>> rot90(A)ans =6 8 9 95 5 5 73 2 3 36.特殊矩阵的产生>> a=eye(3)a =1 0 00 1 00 0 1>> b=ones(2,3)b =1 1 11 1 1>> c=zeros(3,4)c =0 0 0 00 0 0 00 0 0 0>> d=rand(2,3)d =0.9501 0.6068 0.89130.2311 0.4860 0.7621 >> magic(4)ans =16 2 3 135 11 10 89 7 6 124 14 15 17.数的运算>> 4+2ans =6>> 4*2ans =8>> 4/2ans =2 >> 4\2ans =0.5000>> 4^3ans =64>> sqrt(9)ans =3>> exp(3)ans =20.0855>> log(4)ans =1.3863>> log2(4)ans =28.矩阵的运算>> a=[1,2,3;4,5,6;7,8,9]a =1 2 34 5 67 8 9>> a'ans =1 4 72 5 83 6 9>> det(a)ans =>> rank(a)ans =2>> inv(a)Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 1.541976e-018. ans =1.0e+016 *-0.4504 0.9007 -0.45040.9007 -1.8014 0.9007-0.4504 0.9007 -0.4504 >> eig(a)ans =16.1168-1.1168-0.0000>> [X,D]=eig(a)X =-0.2320 -0.7858 0.4082-0.5253 -0.0868 -0.8165-0.8187 0.6123 0.4082D =16.1168 0 00 -1.1168 00 0 -0.0000 >> trace(a)ans =15>> 3*aans =3 6 912 15 1821 24 27>> b=[2 3 4;4 5 6;6 7 8]b =2 3 44 5 66 7 8>> a+bans =3 5 78 10 1213 15 17>> a-bans =-1 -1 -10 0 01 1 1>> a*bans =28 34 4064 79 94100 124 148>> a/bWarning: Matrix is singular to working precision.ans =NaN NaN NaNNaN NaN NaNNaN NaN NaN>> a\bWarning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 1.541976e-018. ans =-0.6667 -5.6667 -6.66671.3333 10.3333 11.33330 -4.0000 -4.0000>> a^2ans =30 36 4266 81 96102 126 150>> a.*bans =2 6 1216 25 3642 56 729.变量的存储和调用>> a=2,b=3,c=5;a =2b =3>> save data a b c>> load data10.列出工作空间所有变量>> whosName Size Bytes Classa 1x1 8 double arrayb 1x1 8 double arrayc 1x1 8 double arrayGrand total is 3 elements using 24 bytes11.联机求助>> help sqrtSQRT Square root.SQRT(X) is the square root of the elements of X. Complexresults are produced if X is not positive.See also sqrtm, realsqrt, hypot.Overloaded functions or methods (ones with the same name in other directories) help sym/sqrt.mReference page in Help browserdoc sqrt12.多维数组建立>> a1=[1 2 3;4 5 6;7 8 9];a2=a1',a3=a1-a2a2 =1 4 72 5 83 6 9a3 =0 -2 -42 0 -24 2 0>> a4=cat(3,a1,a2,a3)a4(:,:,1) =1 2 34 5 67 8 9a4(:,:,2) =1 4 72 5 83 6 9a4(:,:,3) =0 -2 -42 0 -24 2 013.弥量积>> a=[2 3;4 6;7 9];b=[2 4;6 8]; >> c=kron(a,b)%ac =4 8 6 1212 16 18 248 16 12 2424 32 36 4814 28 18 3642 56 54 72 14.矩阵的范数>> a=[2 3;4 6;7 9];>> n=norm(a)n =13.9560>> n=norm(a,1)n =18>> n=norm(a,2)n =13.9560>> n=norm(a,inf)n =16>> n=norm(a,'fro')13.964215.LU分解>> a=[1 2 3;4 5 6;7 8 90;]a =1 2 34 5 67 8 90>> [L,U]=lu(a)L =0.1429 1.0000 00.5714 0.5000 1.00001.0000 0 0 U =7.0000 8.0000 90.00000 0.8571 -9.85710 0 -40.5000 >> [L,U,P]=lu(a)L =1.0000 0 00.1429 1.0000 00.5714 0.5000 1.0000 U =7.0000 8.0000 90.00000 0.8571 -9.85710 0 -40.5000P =0 0 11 0 00 1 016.QR分解>> a=[1 2 3;4 5 6;7 8 9;10 11 12];>> [Q,R]= QR(a)??? Undefined command/function 'QR'.>> [Q,R]=qr(a)Q =-0.0776 -0.8331 0.5405 -0.0885 -0.3105 -0.4512 -0.6547 0.5209 -0.5433 -0.0694 -0.3121 -0.7763-0.7762 0.3124 0.4263 0.3439 R =-12.8841 -14.5916 -16.29920 -1.0413 -2.08260 0 -0.00000 0 0。
实验2 矩阵与数组

8.A=[1 2 3 4;5 6 7 8; 9 10 11 12];
b=[1 -1 2 -2];
B=A-[b;b;b]
B = 0 3 1 6
4 7 5 10
z =3.2563 58.9597 +10.2691i
2.
A=[3 -7 8 15 67;0 5 8 -10 11;5 -7 6 18 29];
A(:,3)
ans =
8
8
6
A(2,:)
ans =
0 5 8 -10 11
3.
x=[2 8 5;9 7 1];
b=[2 4 5];
max(x)
min(x)
ans =9 8 5
A =
1 1 2
-1 0 3
4 -5 6
2矩阵的结构操作
输入矩阵后,可以对矩阵进行的主要操作包括矩阵的扩充,矩阵元素的提取,矩阵元素的部分删除等。下面对其作简单的介绍
(1)矩阵的扩充
例如,用下述命令可以在上述矩阵 下面再加上一个行向量:
>> A(4,:)=[1 3 2]
A =
1 1 2
-1 0 3
4 -5 6
5.
x=[1 4;8 3];
inv(x)
diag(x)
sum(x,1)
sum(x,2)
ans =-0.1034 0.1379
0.2759 -0.0345
ans = 1
3
ans =9 7
ans = 5
11
sum(x(:))
c语言数组实验报告

c语言数组实验报告C 语言数组实验报告一、实验目的本次实验旨在深入理解和掌握 C 语言中数组的基本概念、使用方法以及常见的操作。
通过实际编程和调试,提高对数组的运用能力,为今后解决更复杂的程序设计问题打下坚实的基础。
二、实验环境操作系统:Windows 10编译器:Visual Studio 2019三、实验内容1、一维数组的定义、初始化和遍历定义一个包含整数的一维数组,如`int arr10;`使用初始化列表为数组赋值,例如`int arr5 ={1, 2, 3, 4, 5};`通过循环遍历数组,输出每个元素的值。
2、一维数组的查找和修改实现线性查找算法,在数组中查找特定的元素。
根据找到的元素位置,修改其值。
3、二维数组的定义、初始化和遍历定义二维数组,如`int arr234;`以不同的方式初始化二维数组,如按行初始化或整体初始化。
使用双重循环遍历二维数组。
4、二维数组的应用:矩阵运算实现两个矩阵的相加和相乘运算。
四、实验步骤1、一维数组的定义、初始化和遍历编写代码如下:```cinclude <stdioh>int main(){int arr10;int i;//初始化数组for (i = 0; i < 10; i++){arri = i + 1;}//遍历数组并输出for (i = 0; i < 10; i++){printf("%d ", arri);}return 0;}```编译并运行代码,观察输出结果,验证数组的初始化和遍历是否正确。
2、一维数组的查找和修改以下是实现线性查找并修改元素值的代码:```cinclude <stdioh>int main(){int arr5 ={10, 20, 30, 40, 50};int target = 30;int found = 0;int i;//查找元素for (i = 0; i < 5; i++){if (arri == target) {found = 1;break;}}if (found) {printf("找到元素%d,位于索引%d\n", target, i);arri = 100; //修改元素值} else {printf("未找到元素%d\n", target);}//输出修改后的数组for (i = 0; i < 5; i++){printf("%d ", arri);}return 0;}```运行程序,输入不同的目标值,查看查找和修改的结果。
实验一____Matlab的数组及矩阵运算(1)

姓名: 学号: 班级:实验一 Matlab 的数组及矩阵运算实验目的:1、 了解Matlab 软件,学会Matlab 软件的一些基本操作;2、 学习用Matlab 软件进行矩阵的生成、拼接、剪切及运算。
实验内容:1、设有分块矩阵 33322322E R A O S ⨯⨯⨯⨯⎛⎫= ⎪⎝⎭ ,其中E,R,O,S 分别为单位阵、随机阵、零阵和对角阵,试通过数值计算验证22E R RS A o S +⎛⎫= ⎪⎝⎭2、某零售店有9种商品的单件进价(元)、售价(元)及一周的销量如表所示,问哪种商品的利润最大,哪种商品的利润最小;按收入由小到大,列出所有商品及收入;求这一周该10种商品的总收入和总利润。
实验过程:第一题:1、首先由题意创建E ,R ,O ,S 矩阵2、 将E ,R ,O ,S 由题意拼接成矩阵A3、 分别计算2A 与⎥⎦⎤⎢⎣⎡+2S O ES R E 并比较结果 实验源代码如下:E=eye(3);O=zeros(2,3);R=rand(3,2);S=[3 0;0 3];A=[E R ;O S];B=[E R+R*S;O S^2];A2=A^2B程序运行结果:A2 =1.0000 0 0 3.6873 1.6228 0 1.0000 02.95283.7419 0 0 1.0000 0.7051 3.6676 0 0 0 9.0000 0 0 0 0 0 9.0000B =1.0000 0 0 3.6873 1.6228 0 1.0000 02.95283.7419 0 0 1.0000 0.7051 3.6676 0 0 0 9.0000 0 0 0 0 0 9.0000 第二题:1、创建三个向量分别:shoujia:单件售价、jinjia:单件进价、xiaoliang:销量2、计算利润:lirun=shoujia-jinjia再对利润向量分别用max和min求其最大值和最小值,及其所对应的序号3、计算收入:Shouru=xiaoliang.*shoujia,再对收入向量用sort函数排序4、用sum函数计算zhongshouru和zhonglirun程序源代码如下:jinjia=[7.15 8.25 3.20 10.30 6.68 12.03 16.85 17.51 9.30];shoujia=[11.10 15.00 6.00 16.25 9.90 18.25 20.80 24.15 15.50];xiaoliang=[568 1205 753 580 395 2104 1538 810 694] lirun=shoujia-jinjia;[zhuidalirun,lmax]=max(lirun)[zhuixiaolirun,lmin]=min(lirun)Shouru=xiaoliang.*shoujia[shourupaixu,shangpinxu]=sort(shouru) zhoungshouru=sum(shouru)zhonglirun=sum(lirun.*xiaoliang)程序运行结果如下:zhuidalirun =6.7500lmax =2zhuixiaolirun =2.8000lmin =3shourupaixu =1.0e+004 *Columns 1 through 70.3911 0.4518 0.6305 0.94251.0757 1.8075 1.9562Columns 8 through 93.1990 3.8398shangpinxu =5 3 1 4 9 2 8 7 6zhoungshouru =1.4294e+005zhonglirun =4.6052e+004实验结果:1、由第一题的运行结果可以看出,由于矩阵A^2与⎥⎦⎤⎢⎣⎡+2S O ES R E中对应元素相等,因此⎥⎦⎤⎢⎣⎡+=22^S O ES R E A 2、由第二题的运行结果可以看出:上述九种商品中,利润最大的是2号商品,其最大利润为6.75元,利润最小的是3号商品,其利润为2.8元;按收入排序为:hourupaixu =1.0e+004 *Columns 1 through 70.3911 0.4518 0.63050.9425 1.0757 1.8075 1.9562Columns 8 through 93.1990 3.8398其对应的商品序号为:shangpinxu =5 3 1 4 9 2 8 7 6一周商品的总收入为: 142940元一周商品的总利润为: 46052元。
实验二 矩阵和数组的操作

实验二矩阵和数组的操作一、实验目的和要求1、掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等2、掌握矩阵和数组的加减运算与乘法3、掌握对数组中元素的寻访与赋值,会对数组进行一般的操作二、试验环境计算机MA TLAB软件三、实验内容和步骤1、用三种方法创建一个3×3矩阵,然后利用矩阵编辑器,将其扩充为4×5矩阵,并保存,试着调用它(1)直接输入法如在命令区输入A=[3,2,1;4,5,6;7,8,9](2)直接利用MATLAB提供的函数创建一个3×3矩阵如在命令窗口输入rand(3,3)即得到一个3×3的随机矩阵(3)利用MATLAB提供的“Matrix Editor”完成输入步骤1 在命令区输入A=1步骤2 用鼠标单机工具栏的工作区浏览器,MATLAB弹出变量浏览器,选中变量A,用鼠标左键双击A,打开矩阵编辑器步骤3 做左下角两个文本框中分别输入希望的得到的矩阵的行数和列数即可。
如将3行3列改成4行5列,其可以得到一个4×5矩阵。
若想修改其中的元素,只需用鼠标选中表格中我们想要修改的元素,将原来的元素修改为我们需要的值步骤5 要命令区输入save data A(data为我们给变量文件起的名称,系统会自动沿设定好的路线以“.mat”格式存储文件,即可保存上面例子中创建的矩阵A步骤6 要命令输入save data 即可把保存在文件夹中的矩阵读到MA TLAB的工作区的内存中来。
2、建立一个等差数列,然后由它产生一个对角阵步骤1、在命令区输入a=linspace(0,1.5,5)产生一个等差数列步骤2、在命令区输入b=diag(a)产生一个对角阵3、利用MATLAB的函数inv(A)求方阵A的逆矩阵步骤1、在命令区输入A=[1,2;5,6]得到一个2×2的方阵步骤2、再输入B=inv(A)求出A的逆矩阵四、练习例:以矩阵格式输入数据,自定义一个三阶帕斯卡矩阵A=1 1 11 2 31 3 6⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦。
有关矩阵数学实验报告

有关矩阵数学实验报告引言矩阵是数学中一个重要的概念,广泛应用于线性代数、图论、计算机科学等众多领域。
本实验旨在通过实际操作和计算,加深对矩阵的理解,并探索矩阵在现实问题中的应用。
本报告将从实验目的、实验步骤、实验结果和实验结论几个方面进行介绍。
实验目的1. 了解矩阵的基本概念和运算规则;2. 掌握矩阵的求逆、转置和乘法等操作;3. 实践利用矩阵解决实际问题。
实验步骤1. 实验准备:安装并学习使用相应的矩阵数学软件;2. 实验1:矩阵加法和乘法- 创建两个相同维度的矩阵A和B;- 计算A + B和A * B;- 分析结果并进行讨论。
3. 实验2:矩阵求逆和转置- 创建一个可逆矩阵C;- 计算C的逆矩阵C'和C的转置矩阵C^T;- 检验计算结果是否正确。
4. 实验3:矩阵在实际问题中的应用- 选择一个实际问题,并将其抽象成矩阵形式;- 利用矩阵运算解决问题;- 分析结果,并与传统解法进行对比。
实验结果1. 实验1结果分析:经过计算发现,矩阵的加法和乘法满足交换律和结合律,与数的加法和乘法类似。
但是,矩阵乘法不满足交换律,即A * B ≠B * A。
这进一步说明矩阵并不是普通数的简单扩展。
2. 实验2结果检验:针对可逆矩阵C,计算得到的逆矩阵C'和转置矩阵C^T经过验证均正确,满足逆矩阵和转置矩阵的定义和性质。
3. 实验3结果分析:我们选择了一个线性方程组问题,利用矩阵运算求解。
与传统解法相比,矩阵运算更简洁、高效,尤其对于高维度复杂问题具有很大优势。
实验结论通过本次实验,我们对矩阵的概念和运算规则有了更深入的理解。
矩阵不仅仅是一种数学工具,它在现实问题的建模和求解中发挥着重要作用。
矩阵的加法、乘法、逆矩阵和转置等运算规则的学习,为我们处理实际问题提供了更多的方法和思路。
在未来的学习和研究中,矩阵将会贯穿于我们的整个数学和科学计算的领域,为我们带来更大的便利和创造力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:MATLAB上机实验实验项目:矩阵和数组的操作
实验地点:
专业班级:学号
学生姓名:
指导教师:
年月日
实验二矩阵和数组的操作
一.实验环境
计算机 MATLAB软件
二.实验目的
1.掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。
2.学习矩阵和数组的加减运算与乘法。
3.掌握对数组元素的寻访与赋值,会对数组进行一般的操作。
三.实验内容与步骤
1.用三种方法创建一个3×3矩阵,然后利用矩阵编辑器,将其扩充为4×5矩阵,并保存,试着调用它。
2.建立一个等差数列,然后由它产生一个对角阵。
3.利用MATLAB的函数inv(A)求方阵的逆矩阵。
解:1.
(1)
>> A=[3,2,1;4,5,6;7,8,9]
A =
3 2 1
4 5 6
7 8 9
(2)
A=rand(3,3)
A =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
2.
> a=linspace(0.1,5,5)
a =
0 0.3750 0.7500 1.1250 1.5000
>> B=diag(a)
B =
0 0 0 0 0
0 0.3750 0 0 0
0 0 0.7500 0 0
0 0 0 1.1250 0
0 0 0 0 1.5000
3.
>> A=[1,2;5,6]
A =
1 2
5 6
>> B=inv(A)
B =
-1.5000 0.5000
1.2500 -0.2500
四.练习题
1.创建一个5×5矩阵,提取主对角线以上的部分。
>> A=rand(5,5)
A =
0.4447 0.1763 0.8936 0.1389 0.1988
0.6154 0.4057 0.0579 0.2028 0.0153
0.7919 0.9355 0.3529 0.1987 0.7468
0.9218 0.9169 0.8132 0.6038 0.4451
0.7382 0.4103 0.0099 0.2722 0.9318
>> B=triu(A)
B =
0.4447 0.1763 0.8936 0.1389 0.1988
0 0.4057 0.0579 0.2028 0.0153
0 0 0.3529 0.1987 0.7468
0 0 0 0.6038 0.4451
0 0 0 0 0.9318
2.A=rand(3),B=magic(3),C=rand(3,4),计算A×B×C
>> A=rand(3),B=magic(3),C=rand(3,4)
A =
0.4660 0.5252 0.8381
0.4186 0.2026 0.0196
0.8462 0.6721 0.6813
B =
8 1 6
3 5 7
4 9 2
C =
0.3795 0.7095 0.1897 0.3028
0.8318 0.4289 0.1934 0.5417
0.5028 0.3046 0.6822 0.1509
>> D=A*B*C
D =
16.2278 13.1844 9.2577 9.6107
4.8656 4.7624 3.7848 2.6921
18.5715 15.9959 11.7862 10.7667
3.创建一个3×3矩阵,并求其转置,逆矩阵。
>> A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> B=A'
B =
1 4 7
2 5 8
3 6 9
>> C=inv(A)
C =
1.0e+016 *
-0.4504 0.9007 -0.4504
0.9007 -1.8014 0.9007
-0.4504 0.9007 -0.4504
4.用两种方法求Ax=b的解(A为4阶随机矩阵,b为4阶列向量)。
第一种方法:
>> A=rand(4,4)
A =
0.6979 0.5936 0.6449 0.2897
0.3784 0.4966 0.8180 0.3412
0.8600 0.8998 0.6602 0.5341
0.8537 0.8216 0.3420 0.7271
>> b=[1;2;3;4]'
b =
1
2
3
4
>> B=inv(A)
B =
5.5841 -1.5631 -4.4313 1.7633
-6.0656 -1.0402 9.2146 -3.8633
1.2126 1.6437 -1.7053 -0.0019
-0.2722 2.2375 -4.4079 3.6715
>> x=B*b
x =
-3.7828
4.0446
-0.6235
5.6652
第二种方法:
>> linsolve(A,b)
ans =
-3.7828
4.0446
-0.6235
5.6652
5.创建一个4阶随机矩阵A,计算A3。
>>A= rand(4,4)
A =
0.3093 0.7027 0.6213 0.8801
0.8385 0.5466 0.7948 0.1730
0.5681 0.4449 0.9568 0.9797
0.3704 0.6946 0.5226 0.2714
>> B=A^3
B =
3.1558 3.4377
4.4070 3.5635
3.1635 3.5662
4.4434 3.5408
3.7880
4.1643
5.2663 4.1574
2.4193 2.6992
3.4251 2.8220
6.求100—999之间能被21整除的数的个数。
>> A=100:999;
>> a=mod(A,21);
>> b=find(a==0);
>> x=length(b)
x =
43
7.设有矩阵A和B
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 =
3 0 16
17 -6 9
0 23 -4
9 7 0
4 13 11
[1]求它们的乘积C=A×B
[2]将矩阵C的右下角3×2子矩阵赋给D
>> A=[1:5;6:10;11:15;16:20;21:25]
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=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]
B =
3 0 16
17 -6 9
0 23 -4
9 7 0
4 13 11
>> C=A*B
C =
93 150 77 258 335 237 423 520 397 588 705 557 753 890 717
>> D=C(3:5,2:3)
D =
520 397
705 557
890 717。