(matlab编程基础)数组的基本操作

news2024/11/18 11:20:55

目录

1、数组寻址

2、数组元素删除

3、数组查找和排序

(1)数组查找

(2)数组排序

4、数组运算

5、数组操作函数


数组操作主要从以下5部分进行介绍:数组寻址、数组元素的删除、数组查找和排序、数组运算和数组操作函数。

1、数组寻址

数组中含有多个元素,因此对数组的单个元素或多个元素进行访问操作时,需要对数组进行寻址操作。在MATLAB中,数组寻址是通过对数组下标的访问实现的。MATLAB在内存中以列的形式进行二维数组的保存,对于一个m行n列的数组,i表示行的索引、j表示列的索引。对二维数组的寻址可以表示为A(i,j);若采用单下标寻址,则数组中元素的下标h表示为(j-1) * m+i。

例:

>>A =randn(1,4)

A=

      -0.4686     -0.2724     1.0984     -0.2778

>> A(2)

ans =

         -0. 2724

>>A([1 2])

ans =

        -0. 4686       -0.2724

>>A( 3:end)

ans =

        1.0984        -0.2778

2、数组元素删除

可以通过将该位置的数组元素赋值为“[ ]”(一般配合冒号使用)实现数组中的某些行、列元素的删除。注意,进行数组元素的删除时,索引值必须是完整的行或列,不能是数组内部的元素块或单个元素。

例:

>> A =rand( 3,3)

A=

    0.8530     0.5132     0.2399   

    0.6221     0. 4018    0.1233

    0.3510     0. 0760    0. 1839

>>A([1],:)=[ ]

A=

   0.6221     0.4018     0.1233

   0.3510    0. 0760     0.1839

3、数组查找和排序

(1)数组查找

MATLAB中提供的查找函数为find函数。find函数语法见表

在实际应用中,元素的查找经常通过多重逻辑关系组合产生的逻辑数组并判断元素是否满足某种比较关系,然后通过find 函数返回符合比较关系的元素索引。

(2)数组排序

 数组排序中采用sort 函数进行排序,语法如下。

B= sort(A)

B= sort(A,dim)

B=sort(... ,mode)

[ B,IK] =sort(...)

A为输人等待排序的数组,B为返回的排序后的数组,当A为多维数组时,dim表示排序的维数(默认为1);mode表示排序的方式,取值为升序( ascend)或降序( descend ) ,默认排序方法为升序;IX表示存储排序后的下标数组。

例:

 >>A=[ 1 3 4;-3 6 4;3 5 9]

A=

    1     3    4

   -3     6    4

    3     5    9

>> sort(A,1)

ans =

   -3     3     4

    1     5     4

    3     6     9

>> sort( A ,1 , 'descend')

ans =

    3     6     9

    1     5     4

   -3     3     4

4、数组运算

MATLAB中数组的简单运算是按照元素对元素一一对应的方式来进行的。数组运算的符号及说明如表所示。

 例:

>>a= magic( 3);

>>a= magic( 3)

a=

    8    1    6

    3    5    7

    4    9    2

>>b= ones(3,3)

b=

    1    1    1

    1    1    1

    1    1    1

>>c=a+b

c=

    9    2    7

   4     6    8

   5    10   3

>>d=a.*b

d=

    8    1    6

    3    5    7

    4    9    2

5、数组操作函数

MATLAB中对数组进行特定操作的库函数如表所示

 例:

>>a =ones (2,2)

a=

    1    1

    1    1

>>b=magic(2)

b=

    1    3

    4    2

>> cat(1,a,b)

ans =

        1    1

        1    1

       1     3

        4    2

>>cat(2,a,b)

ans=

        1    1    1    3

        1    1    4    2

 >>c= rand ( 4)

c=

    0.0430     0.6477     0.7447     0.3685

    0.1690     0. 4509    0.1890     0.6256

    0.6491     0.5470     0.6868     0.7802

    0.7317     0.2963     0.1835     0.0811

>>x =diag(c,1)

x =

    0.6477    0.1890    0.7802

>>d= flipud(c)

d=

    0. 7317     0.2963     0. 1835     0.0811

    0. 6491     0.5470     0.6868      0.7802

    0.1690      0.4509     0.1890      0.6256

    0. 0430     0.6477     0.7447      0.3685

>>e= fliplr(c)

e=

    0.3685     0.7447     0.6477     0.0430

    0. 6256    0.1890     0.4509    0.I690 

    0.7802     0.6868     0.5470    0.6491

    0.0811     0.1835     0.2963     0.7317

>> a = randn(2)

a=

    1.2607     -0.0679    0.6601     -0.1952

>>b= repmat(a,1 ,2)

b=

    1.2607     -0.0679    1. 2607    -0.0679

    0.6601     -0.1952    0.6601     -0. 1952

>>c= reshape(b,4,2)

c=

    1.2607     1.2607     

    0.6601     0.6601

   -0.0679    -0.0679

   -0.1952    -0.1952

>> size(c)

ans =

         4      2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/112936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PS CS6视频剪辑基本技巧(五)添加logo、动画和画中画

系列讲座导读 PS CS6视频剪辑基本技巧(一)CS6可以实现的视频剪辑功能 PS CS6视频剪辑基本技巧(二)视频剪接和添加图片 PS CS6视频剪辑基本技巧(三)添加声音和字幕 PS CS6视频剪辑基本技巧(四&am…

RMQ - ST表

RMQ - ST表 1、RMQ 简介 RMQ (Range Minimum / Maximum Query) 问题是指:对于长度为 nnn 的数列 AAA,回答若干询问 (A,i,j)(A, i, j)(A,i,j) (1≤i,j≤n)(1≤i,j≤n)(1≤i,j≤n),返回数列 A 中区间在 [i,j][i,j][i,j] 中的最小 (大) 值所在…

Vue2.0全面教程

Vue2.0 学习视频地址 文章目录Vue2.01.vue 简介1.1.什么是vue1.2.vue的两个特性1.2.1.数据驱动视图1.2.2.双向数据绑定1.3.MVVM概述1.4.MVVM工作原理2.vue的基本使用2.1.基本使用步骤2.2.基本代码与MVVM的对应关系3.vue的调试工具3.1.安装vue-devtool调试工具3.2.配置Chrome浏…

Axios(三)

目录 1.Axios的默认配置 2.Axios创建Ajax实例对象发送请求 3.Axios拦截器 4.Axios取消请求 5.Axios文件结构说明 6.Axios创建过程 7.Axios对象创建过程模拟实现 8.Axios发送请求过程详解 9.模拟实现Axios发送请求 1.Axios的默认配置 <!doctype html> <html …

QT系列第7节 标准对话框使用

QT编程中对话框作为最常用的窗口经常被使用&#xff0c;本节介绍一些QT常用的标准对话框使用。 目录 1.选择单文件 2.选择多文件 3.选择目录 4.文件存储 5.选择颜色 6.选择字体 7.输入字符换/整数/浮点数/条目 8.消息对话框 9.进度对话框 10.向导对话框 1.选择单文件…

【圣诞节限定】今天教你如何用Html+JS+CSS绘制3D动画圣诞树

一、前言 应CSDN的邀请&#xff0c;这次给大家展示一波&#xff0c;如何用H5技术绘制3D圣诞树。 二、创意名 只采用简单的HtmlJSCSS 技术绘制。 三、效果展示 圣诞树修过如下&#xff1a; 四、编码实现 将源码复制保存到html中打开即可。 <!DOCTYPE html> <html lang…

ChatGPT与BimAnt的1小时对话实录【数字孪生】

本文为BimAnt和ChatGPT对数字孪生相关问题的解答&#xff0c;感觉这个AI真的已经“懂”了很多东西&#xff0c;让人恍惚间忘了是在和bot对话。 BimAnt&#xff1a;hello ChatGPT&#xff1a;Hello! How can I help you today? BimAnt&#xff1a;can you speak chinese&am…

鲸鱼优化算法及其在无线网络资源分配中的应用(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 鲸鱼优化算法&#xff08;Whale Optimization Algorithm&#xff09;是一种新兴的智能优化算法&#xff0c;在2016年提出。算法…

JWT渗透与攻防(二)

目录 前言 JWT漏洞演示之CTFhub&#xff08;一&#xff09; JWT漏洞演示之CTFhub&#xff08;二&#xff09; 前言 我们在之前的文章中已经讲解过了JWT漏洞相关的原理和利用&#xff0c;今天我们就通过这篇文章再来了解一下JWT的漏洞。 JWT漏洞演示之CTFhub&#xff08;一&…

Linux-信号

文章目录信号准备知识&#xff1a;信号产生的方式实验验证&#xff1a;9号信号是不可被捕捉&#xff08;自定义的&#xff09;信号处理&#xff1a;信号产生前&#xff1a;信号产生的方式&#xff1a;键盘实验显示&#xff1a;段错误&#xff08;野指针&#xff09;实验验证&am…

SSRF ME XCTF

题目 就是一个验证框和URL框&#xff0c;两个都必须有参数 解法 验证码 做一个粗略的脚本&#xff0c;一般验证码都是数字&#xff0c;所以直接开md5&#xff1a; def cmpcapt(substr):for i in range(1,100001):md5 hashlib.md5(str(i).encode(utf-8))hexmd5 md5.hexd…

机器学习任务功略

目录 机器学习的结构机器学习攻略 训练集loss较大 model bias问题optimization问题 gradient descent的问题解决 如何区分训练集loss大是model bias还是优化器的问题 测试集loss较大 overfitting过拟合 为什么会有overfitting解决过拟合的方法 训练集与测试集的不匹配 如何选择…

Linux内核基础篇——常用调试技巧汇总

文章目录printk动态输出BUG()和BUG_ON()dump_stack()devmemprintk printk共有8个等级&#xff0c;从0-7&#xff0c;等级依次降低。 打印等级可以通过修改/proc/sys/kernel/printk来改变。 查看printk等级&#xff1a; cat /proc/sys/kernel/printk 7 4 1 7打开内核所有打印…

2022圣诞树(C语言摇钱树版本)

逐梦编程&#xff0c;让中华屹立世界之巅。 简单的事情重复做,重复的事情用心做,用心的事情坚持做&#xff1b; 文章目录前言一、个人感悟二、圣诞树由来三、圣诞树发展历史演变四、常见的圣诞树种类五、摇钱圣诞树效果展示六、实现思路七、编码实现总结新壁纸前言 时光飞逝&a…

前端工程师必须掌握—《Webpack教程》

Webpack 学习视频地址 文章目录Webpack1.webpack基础1.1.初始化隔行变色的案例1.2.安装和配置webpack1.2.1.安装webpack1.2.2.配置webpack1.2.3.了解mode可选值的应用场景1.2.4.自定义打包的入口和出口2.插件2.1.安装和配置webpack-dev-server2.1.1.安装webpack-dev-server2.1…

SpringCache+Redis的整合(微服务)

缓存作用&#xff1a; 举个例子&#xff1a;在我们程序中&#xff0c;很多配置数据&#xff08;例如一个商品信息、一个白名单、一个第三方客户的回调接口&#xff09;&#xff0c;这些数据存在我们的DB上&#xff0c;数据量比较少&#xff0c;但是程序访问很频繁&#xff0c;…

Prometheus(十一)Grafana告警

主要概念和特点 关键概念或特征含义Data sources for Alerting 告警的数据源配置从哪里查询到告警信息数据Provisioning for Alerting 告警的配置使用文件等方式配置警报资源&#xff0c;已经管理警报资源Scheduler 调度器评估告警规则&#xff0c;将其视为定期对数据源运行查…

ubuntu虚拟机修改静态ip

我的是&#xff1a;ubuntu 20.04&#xff0c;所以 第一步 sudo vi /etc/netplan/01-network-manager-all.yaml第二步 gateway4已经弃用了&#xff0c;换成下面的&#xff1a; network:version: 2renderer: NetworkManagerethernets:ens33:addresses: [192.168.125.132/24]r…

内核比较: 2.6 内核中改进了内存管理

随着 Linux 内核的发展和成熟&#xff0c;更多的用户期待着 Linux 可以运行非常大的系统来处理科学分析应用程序或者海量数据库。这些企业级的应用程序通常需要大量的内存才能好好运行。2.4 Linux 内核有识别相当大数量的内存的功能&#xff0c;但是 2.5 内核发生了很多改变&am…

docker高级篇第三章-dockerfile案例之制作自己的centos镜像

在上一篇文章中《Dockerfile介绍及常用保留指令》,我们介绍了Dockerfile是什么以及Dockerfile常用的保留字段。熟悉了这些之后,有没有想自己动手写一个Dockerfile呢?本文咱们就实战自己Dockerfile。 案例需求: 我们以远程仓库的centos为模板,制作出代用vim\ifconfig\jav…