当前位置: 首页 > news >正文

MATLAB数组

文章目录

  • 数组
    • 创建
      • 通过冒号创建一维数组
      • 通过logspace函数创建一维数组
      • 通过linspace函数创建一维数组
    • 通过randperm生成随机整数排列
    • 运算
      • 算术运算
      • 关系运算
      • 逻辑运算
      • 优先顺序
  • 矩阵
    • 创建
    • 矩阵操作
    • 下标引用
    • 矩阵信息提取
    • 删除与扩展
    • 合并
    • 矩阵元素的运算
    • 矩阵运算

数组

在MATLAB中一般使用方括号"[]“、逗号”,“,空格号和分号”;"来创建数组,数组中同一行的元素使用逗号或空格进行分隔,不同行之间用分数进行分隔。

创建

通过冒号创建一维数组

x=A:step:B

A是创建一维数组的第一个变量,step是每次递增或递减的数值,直到最后一个元素和B的差的绝对值小于等于step的绝对值为止。

通过logspace函数创建一维数组

y=logspace(a,b)

该函数创建行向量,第一个元素为 1 0 a 10^a 10a,最后一个元素 1 0 b 10^b 10b,形成总数为50个元素的等比数列。

y=logspace(a,b,n)

该函数创建行向量,第一个元素为 1 0 a 10^a 10a,最后一个元素 1 0 b 10^b 10b,形成总数为n个元素的等比数列。

通过linspace函数创建一维数组

y=linspace(a,b)

该函数创建行向量,第一个元素为 a a a,最后一个元素 b b b,形成总数为100个元素的等差数列。

y=linspace(a,b,n)

该函数创建行向量,第一个元素为 a a a,最后一个元素 b b b,形成总数为n个元素的等差数列。

通过randperm生成随机整数排列

P=randperm(N);%生成一个[1,2,..,N]的一个随机排列
P=randperm(N,K);%生成一个长度为K的向量,其中元素取自1~N间的整数,无重复
perms(a);%返回向量a的全排列

运算

算术运算

  • +,-:数组间加法、减法运算直接对对应元素进行操作,要求是数组A、B维数相同
  • ./、.*、.\:数组间的乘除运算直接对对应元素进行操作,要求是数组A、B维数相同,其中A./B=B.\A
  • .^:实现乘方,数组对数组表示数组各个元素对另一个数组各个元素进行乘方操作,要求维数相同,标量对数组乘方和数组对标量都是各个元素与标量之间的运算
  • dot():点积操作,要求维数相同

关系运算

<、<=、>、>=、==、~=

逻辑运算

&、|、~

优先顺序

  1. 括号
  2. 转置和乘幂
  3. 乘除
  4. 加减
  5. 冒号
  6. 关系运算
  7. 逻辑运算

矩阵

矩阵是数学上的概念,而数组是计算机程序设计领域的概念。

创建

矩阵的创建有两种方法,一种是采用"[]",将矩阵元素置于方括号内,同行元素之间用空格或逗号隔开,行与行之间用分号隔开,另一种就是创建特殊矩阵。

OneMatrix = ones(2);%构建全1矩阵 ones(m,n,...,p)
zerosMatrx = zeros(2);%构建全0矩阵 zeros(m,n,...,p)
Identity = eye(2);%构建单位矩阵 eye(2,3) eye(3,2)
Random = rand(2,3);%构建随机矩阵,0到1之间均匀分布
R=randi(IMAX,N);%返回一个N*N随机矩阵,矩阵中的元素为1~MAX之间的均匀分布随机整数
R=randi(IMAX,M,N);%返回一个N*M随机矩阵,矩阵中的元素为1~MAX之间的均匀分布随机整数

矩阵操作

Randoma = randn(1,4);%构建随机矩阵,均值为0,单位方差的正态分布随机数
Randoma = reshape(Randoma,2,2);%生成2*2的矩阵,元素按现行索引的顺序从Randoma中取
Randoma = fliplr(Rnadoma);%将矩阵的每一行逆序排列

下标引用

矩阵可以通过双下标引用和单下标引用两种方式获得元素,其中单下标引用列优先。

IND = sub2ind(size,i,j);%将双下标索引转换为单下标索引
[I J] = ind3sub(size,ind);%将单下标转换为双下标索引

矩阵信息提取

%获取矩阵结构
A = zeres(4,4);%构造全0矩阵
isempty(A);%判断矩阵A是否为空
isscalar(A);%判断矩阵A是否是标量
isvector(A);%判断矩阵A是否是向量
issparse(A);%判断矩阵A是否为稀疏矩阵%获取矩阵大小
ndims(A);%获取矩阵维数
[m,n]=size(A);%获取矩阵各维长度
length(A);%获取最长维的长度
numel(A);%获取矩阵元素个数

删除与扩展

A=[1 1;2 2];%初始化矩阵
A(3,:)=3;%整行扩展赋值
A(4,1)=4;A(4,2)=5;%单个元素赋值增加新元素
A(2,:)=[];%删除整行

合并

A=[2 0 -1;1 3 2];
B=[1 7 -1;4 2 3;2 0 1];
C=[1 0 1 0;-1 2 0 1];
MAB1=cat(1,A,B);%按行合并=horcat(A,B)=[A,B]
MAB2=cat(2,A,C);%按列合并==vercat(A,C)=[A;C]
Y=blkdiag(A,B,C);%构造对角化矩阵

矩阵元素的运算

基本运算和数组类似

A\B;%表示A的逆矩阵乘以B
A/B;%表示A乘以B的逆矩阵B=sort(A);%表示对A按列进行升序排序
B=sort(A,dim);%若dim为1按列升序,若dim为2,按行升序
B=sort(A,dim,mode);%若mode为'ascend',则升序,若mode为'descend',则降序B=sum(A);%计算各列元素之和,返回行向量
B=sum(A,dim);%若dim为1,则同上;若为2,则计算各行向量之和,返回列向量
B=cumsum(A);%返回一个矩阵,第n行表示每列第1到n个数的和
B=cumsum(A,dim);%若dim为1,则同上;若为2,则返回一个矩阵,第n列表示每行第1到n个数的和%下列是求积运算,形式与求和一样
B=prod(A);
B=prod(A,dim);
B=cumprod(A);
B=cumprod(A,dim);%差分运算:将矩阵元素某行(列)减去上一行(列)的结果保存在该行(列)
A=magic(3);
B=diff(A);%将矩阵元素某行减去上一行的结果保存在该行
C=diff(A,2);%2阶差分,即对一阶差分的矩阵再做一次差分
D=diff(A,1,dim);%dim取1表示按列,取2表示按行

矩阵运算

%范数
a=[1 2 3;4 5 6;7 8 9;];
b=norm(a);%默认二阶范数,可带参数%秩
c=rank(a);%行列式
d=det(a);%迹,表示对角线元素的和
e=trace(a);
http://www.lryc.cn/news/349910.html

相关文章:

  • JAVA实验项目(二): 抽象类、接口的定义与使用
  • JVM内存模型最新面试题(持续更新)
  • Nginx wss to ws 折腾记
  • Java入门基础学习笔记22——程序流程控制
  • java医院信息系统HIS源码SaaS模式Java版云HIS系统 接口技术RESTful API + WebSocket + WebService
  • 2024年成都高新区支持企业申报国家、省级、市级大数据产业发展、新一代信息技术与制造业融合发展、工业互联网推广应用等试点示范项目申报对象条件和奖补
  • 让《行列视》解放数据力量,提升业务洞察
  • LeetCode 每日一题 ---- 【2244.完成所有任务需要的最少轮数】
  • 【RAG 去噪】引入 NLI 模型来为 RAG 去噪
  • SQLite利用事务实现批量插入(提升效率)
  • 使用Python处理Excel数据:去除列中的双引号
  • 未来互联网:Web3的技术革新之路
  • 【练习】分治--快排思想
  • Unity读书系列《Unity高级编程:主程手记》——C#技术要点
  • Redis分片集群
  • Math.Round()函数说明
  • 001 定期同步mysql数据到es 删除数据库记录同时删除es记录 es全文搜索分词和高亮
  • Vue 快速入门:Vue初级
  • 什么是IP跳变?
  • Linux服务器lvm磁盘管理fdisk和df磁盘大小不同修改
  • AOP是什么和OOP的区别
  • Clickhouse 字符串函数 - 2
  • 【个人成长】Fitten Code 测试案例分析
  • 管理Anaconda虚拟环境的实用指南
  • python如何在图片上写斜体字
  • 算法练习第22天|39. 组合总和、40.组合总和II
  • CCF PTA 2022年11月C++大富翁游戏
  • React获取form表单值的N种方式
  • Apache Knox 2.0.0使用
  • Tomcat 内核详解 - Web服务器机制