今天做图像处理时,看到一个矩阵的处理,简要谈谈下面几段代码:

首先是介绍矩阵(说明:在matlab中无是数组还是矩阵都是按列来存储的)
首先是一些特殊矩阵的建立
zeros(m,n)%建立全0矩阵
ones(m,n)%建立全1矩阵
eye(m,n)%建立对角线全为1 的矩阵
rand(m,n)%(0,1)随机分布的矩阵
randn(m,n)%相比上一个,均值为0,方差为1
magic(m,n)%魔方矩阵
对于矩阵的建立和元素访问,很多和前面介绍的数组相同
下面看图访问矩阵

访问矩阵元素可以用单下标访问和双下标访问

sub2ind()和ind2sub()函数进项访问方式转换; 
A=[1:4;5:8] 
ind1=sub2ind(size(A),2,3);%将索引(2,3)转变为单下标索引 
[i,j]=ind2sub(size(A),7);

数组相关操作
A=[1 2 3;4 5 6;7 8 9];
B=[9 8 7; 6 5 4; 3 2 1];
a=A(1:2,:)-取A数组第几行元素(这里是第1和2行)
a=A(:,1:2)-取A数组第几列元素(这里是第1和2列)
a=A(2:4)-取A数组第2个到第4个元素
a=A(1:end)-将元素正序排列
a=A(end:-1:1)-将元素反序排列
a=A([2 4])-取数组A第2个和第4个元素
a=A(1,2)-取数组第一行第一列元素
C=[A B]-将数组AB横向拼接
C=[A; B]-将数组AB纵向拼接

下面几个操作要熟悉,改变数组内容
A(A=1)=100;%将A数组中为1元素全部变为100
A(A>4)=20;%将A数组中大于4的元素都变为20
A(1,1)=10%将A数组里1行1列元素变为10
下面几个函数判断数组类型
isnumeric();%判断是否为数值型数组
isreal();%判断是否为实数型数组
isinteger();%判断是否为整型数组,(matlab默认存储double型)
islogical();%判断是否为逻辑型数组
find()函数:查找数组元素然后修改元素,具体见下图

原文链接:https://blog.csdn.net/CV_YOU/article/details/52892673

matlab中的数组与矩阵的更多相关文章

  1. matlab中高维数组怎么做PCA?

    PCA需要先求数据的散布矩阵x*x',再求其特征向量,那么随便一个400*450的图像,就是180000维,矩阵就是180000*180000,matlab无法容纳,那么通常的PCA对图像的降维,比如 ...

  2. matlab中,怎样把矩阵中所有的0改为2

    一句话搞定:>> a(find(a==0))=[2]:把矩阵中所有的0改为2

  3. 获得MATLAB中FIG文件的矩阵

    在拓扑优化中,经常使用imagesc函数来显示最终的结果,往往会保存了Fig文件,却忘记保存mat文件. 根据已有的Fig文件,是可以找到其所显示矩阵.这个是我从fig数据结构中一层一层找到的,记录一 ...

  4. matlab中如何给一个矩阵中的某几个特定位置赋值

    用sub2ind >> a=zeros(5); i = [2;3;4]; j = [1;4;2]; >> a(sub2ind(size(a), i, j))=1 a = 0 0 ...

  5. matlab中矩阵的表示与简单操作

    原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间 ...

  6. matlab 中max函数用法

    Matlab中max函数在矩阵中求函数大小的实例如下:(1)C = max(A)返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的 ...

  7. Matlab中数据的存储方式

    简介 MATLAB提供了丰富的算法以及一个易于操作的语言,给算法研发工作者提供了很多便利.然而MATLAB在执行某些任务的时候,执行效率偏低,测试较大任务量时可能会引起较长时间的等待.未解决这个问题, ...

  8. matlab中find 查找非零元素的索引和值

    来源:https://ww2.mathworks.cn/help/matlab/ref/find.html?searchHighlight=find&s_tid=doc_srchtitle f ...

  9. matlab中find函数的使用说明

    matlab中如何统计一个矩阵M中零的个数 size(find(M==0),1) 原文:http://blog.sina.com.cn/s/blog_707b64550100rbh3.html fin ...

随机推荐

  1. 避免js重复加载的问题

    避免js重复加载的问题 在日常开发中,一个页面加载另一个页面的时候,就会把另一个页面的js也会加载进来,那么如何才能避免被加载页面不再重复加载已经加载过的js呢? 先上代码 动态加载js // 加载j ...

  2. linux centos7安装mysql8

    一.RPM版安装 查看是否有其他版本的数据库,若有,删除干净 非root用户必须要有sudo权限 1.下载mysql相关安装包 https://mirrors.tuna.tsinghua.edu.cn ...

  3. 《手把手教你构建自己的 Linux 系统》学习笔记(5)

    交叉编译是什么? 交叉编译就是在一个系统上,编译生成另外一个系统运行的程序文件. 「硬件体系结构」和「操作系统」的关系是什么? 硬件体系结构也可以称为架构,主要是通过 CPU 的指令集来进行区分的,操 ...

  4. 1-2.Kubectl命令行工具

    1.kubectl用法 $~: kubectl [command] [TYPE] [NAME] [flags] [command] 子命令.用于操作Kubernetes集群资源对象. 可取值:[cre ...

  5. open xml 导出excel遇到的问题

    我有一个需求:使用ajax 下载excel文件 结果:失败 原因:下载文件是通过浏览器解析二级制流下载的,而ajax返回的是文本 方法: 1.如果你下载不需要参数,那直接写个a标签链接到地址就行 2. ...

  6. 【React Native】集成声网Agora语音通讯

    前言: 公司的产品是一款基于社交的内容聊天软件,需要集成语音通讯功能,在写iOS原生项目时,用到的就是Agora SDK,现在写React Native也直接采用了Agora的库. 集成iOS.And ...

  7. hdu 1011 Starship Troopers(树上背包)

    Problem Description You, the leader of Starship Troopers, are sent to destroy a base of the bugs. Th ...

  8. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  9. C#中类的编程规范

    C#中类的编程规范,或许这是一个好习惯. using System; using System.Collections.Generic; using System.Linq; using System ...

  10. Math, Date,JSON对象

    Math 对象 Math是 JavaScript 的原生对象,提供各种数学功能.该对象不是构造函数,不能生成实例,所有的属性和方法都必须在Math对象上调用. 静态属性 Math对象的静态属性,提供以 ...