Matlab练习——矩阵和数组的操作

题目来自:《战胜MATLAB必做练习50道》

题目有更改,改成了我想写的样子。

1. 创建一个3×3矩阵,并将其扩充为4×5矩阵

clear;
clc;
mat1 = ones(3,3)
mat2 = zeros(3,3)
mat3 = rand(3,3)          %随机矩阵
mat4 = randn(3,3)         %产生均值为0,方差σ^2 = 1,标准差σ = 1的正态分布的矩阵mat4(4,5) = 10

2. 建立一个等比数列,然后由它产生一个对角阵,并存储该矩阵。

clear;
clc;
a = logspace(0,4,5)
d1 = diag(a)
save mydate d1%eye(m,n)生成一个m×n的单位矩阵

3. 调用上面存储的矩阵,并由它产生一个列向量。

clear;
clc;
load mydate d1
d1
d2 = diag(d1)

4. 创建一个3×3魔方阵和相应的随机矩阵,将两个矩阵拼接起来。然后提取任意元素。

魔方阵:任意行、列及对角线之和相等。

clear;
clc;
mat1 = magic(3)
mat2 = rand(3,3)
mat3 = [mat1,mat2]     %横向拼接
mat4 = [mat1;mat2]     %纵向拼接
mat5 = mat3(2:3,[1,3,4])   %提取第2、3行,第1、3、4列的元素
mat6 = mat3([1,3],[2,4])

5. 求矩阵的转置矩阵。

clear;
clc;
mat1 = magic(3)
mat2 = rot90(mat1)     %旋转矩阵
mat3 = mat1‘           %转置矩阵

6. 创建一个4×4单位矩阵,提取主对角线上的元素

clear;
clc;
mat1 = rand(4,4)
d = diag(mat1)

7. 创建一个4×5随机矩阵,提取第一行和第二行中大于0.3的元素组成的矩阵。

clear;
clc;
mat1 = rand(4,5)
mat2 = mat1([1,2],[1,2,3,4,5])
mat3 = mat2(:)
k = 1;
for ii = 1 : length(mat3)
    if(mat3(ii) > 0.3)
        mat4(k) = mat3(ii);
        k = k + 1;
    end
end
mat4

8. 计算A×B×C。

clear;
clc;
A = rand(3)
B = magic(3)
C = rand(3,4)
A*B*C

9. A=[1,2,3],计算A‘ 与A 的积。

clear;
clc;
A = [1,2,3]
B = A‘
A*B
B*A

10. 求5×5矩阵和4×3矩阵的逆矩阵

clear;
clc;
A = rand(5,5)
B = rand(4,3)
A1 = inv(A)             %inv只能对方阵求逆
B1 = pinv(B)            %pinv都可,包含了inv的功能
C = A*A1
D = B1*B    

11. 用两种方法 求解Ax = b的解(A为4阶随机矩阵,b为4阶列向量)

clear;
clc;
A = rand(4)
b = ones(4,1)
x1 = inv(A) * b
x2 = A\b                  %直接使用高斯消去法,速度快一些    

12. 算A的5次方,计算(0.5)^A

矩阵的乘方算法(A^p):

①  当p为正整数时,A^p表示A自乘p次

②  当p为负整数时,A^(-p)表示矩阵A-1自乘p次

③  当p为0时,A^0等于与A同维的单位矩阵

④  当p为分数时,若A可以分解为A = WDW-1,D为对角阵,则A^p = WDpW-1

标量的矩阵乘方(p^A):

若A可以分解为A = WDW-1,D为对角阵,则可以定义标量矩阵乘方为:

 

clear;
clc;
A = rand(4)
B = A^5           %A自乘5次
C = (0.5)^A
时间: 2024-11-20 00:26:44

Matlab练习——矩阵和数组的操作的相关文章

MATLAB编程与应用系列-第2章 数组及矩阵的创建及操作(1)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] MATLAB中的数学计算部分包括数值计算和符号计算两大部分,数值计算是MATLAB的核心,在数值计算过程中,同样需要辅以适当的符号运算,目前符号运算的发展也非常完善,同样得到广泛的应用

MATLAB编程与应用系列-第2章 数组及矩阵的创建及操作(2)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] 2.2 数组及矩阵的创建和操作 本节将介绍数组及矩阵的创建和操作,包括数组的输入以及数组元素的操作.由于数组和矩阵在创建和寻访的处理方式类似,因此将两者综合一起说明. ###2.2.1

matlab中元胞数组(cell)转换为矩阵

matlab中元胞数组(cell)转换为矩阵. cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组: 转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数: ——reshape(A,m,n,p,...),将矩阵A变换为m*n*p*...的矩阵: ——permute(A,[1,3,2]),将矩阵A的第3维和第2维交换,从而满足顺序要求: 下面举一个我自己用过的例子: H——<K*1>cell,其中每个元素为U*S*N*T的四维矩阵(H为WINNERII

R: matrix &amp; array 生成、操作矩阵、数组:

################################################### 问题:生成.操作矩阵   18.4.27 怎么生成矩阵 matrix.,,及其相关操作 ??? 解决方案: D = d = matrix(nrow = 3,ncol = 3)     #生成一个空矩阵,再填写内容. a1 = c(1,4,2);   a2 = c(2,2,3);   a3 = c(3,1,0); D[,1] = a1; D[,2] = a2; D[,3] = a3 d[1,]

Scala详解---------数组相关操作

Scala中提供了一种数据结构-数组,其中存储相同类型的元素的固定大小的连续集合.数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合. 取替声明单个变量,如number0, number1, ..., 和number99,声明一个数组变量,如号码和使用numbers[0],numbers[1],...,numbers[99]表示单个变量.本教程介绍了如何声明数组变量,创建数组和使用索引的过程变量数组.数组的第一个元素的索引是数字0和最后一个元素的索引为元素的总数减去1.

[matlab]改变矩阵的大小并保存到txt文件

要完成的任务是,加载一个保存在txt文件中的矩阵, 并把它扩大10倍,并且要再次保存回去 %加载txt文件 >load('Matrix.txt'); %扩大10倍 repmat(Matrix,row column) % 这里的matrix 参数是要对其进行修改的matrix, 其中row是要新建的一个矩阵的行数, 而column是新建矩阵的列数 >Matrix = repmat(Matrix,10,1); % 这个就相当于  将Matrix矩阵 复制了10份,并且是按列排列的, 等同于 Mat

MATLAB中的结构数组

MATLAB中的结构数组 结构数组: 结构是包含一组记录的数据类型,而记录则是存储在相应的字段中.结构的字段可以是任意一种MATLAB数据类型的变量或者对象.结构类型的变量也可以是一维的.二维的或多维的数组.结构数组也称为架构数组.不过,在访问结构类型数据的元素时,需要使用下标配合字段的形式. 可以在一个数组中放置各类的数据,并且一个结构数组还能是另一个结构数组的一部分.相比较而言,比元胞数组更为强大,也更加富于变化. (1)直接赋值法创建结构数组 >> employee.name='tige

matlab获取矩阵和向量长度length和size

matlab获取矩阵和向量长度length和size 觉得有用的话,欢迎一起讨论相互学习~ 概论 size:获取数组的行数和列数 length:数组长度(即行数或列数中的较大值) numel:元素总数. size() s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数. [r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量. 如果在size函数的输入参数中再添

C++ 出现bug :二位数组的操作运算,求非对角线的元素的和

编写一个通用程序,求出二位数组(行数和列数必须相等)的非对角线的元素之和,试建立类MATRIX完成上述功能 #include<iostream> using namespace std; class MATRIX { public: void mATRIX(); void MATRIX_sum(); void MATRIX_display(); static int fact_len;//定义静态变量 private: int sum; int a[40][40]; }; int MATRIX