Matlab中数组详解

devtools/2024/11/10 12:24:36/

在MATLAB中,数组是最基本的数据类型,几乎所有的数据运算都涉及数组操作。下面是对MATLAB中数组的详细解释和操作示例:

数组的创建

  1. 一维数组(向量)

    • 行向量:用方括号 [ ] 包含元素,元素之间用空格或逗号分隔。
      matlab">row_vector = [1 2 3 4 5];  % 用空格分隔
      row_vector = [1, 2, 3, 4, 5];  % 用逗号分隔
      
    • 列向量:用方括号 [ ] 包含元素,元素之间用分号分隔。
      matlab">column_vector = [1; 2; 3; 4; 5];
      
  2. 二维数组(矩阵)

    • 用方括号 [ ] 包含元素,元素之间用空格或逗号分隔,同一行元素之间用分号分隔。
      matlab">matrix = [1 2 3; 4 5 6; 7 8 9];
      matrix = [1, 2, 3; 4, 5, 6; 7, 8, 9];
      
  3. 空数组

    • 用一对空的方括号 [ ] 表示。
      matlab">empty_array = [];
      

数组操作

  1. 数组的索引

    • MATLAB 中数组索引从 1 开始。
      matlab">A = [10, 20, 30, 40, 50];
      element = A(3);  % 访问第三个元素,结果为 30
      
  2. 数组的切片

    • 提取子数组的一部分。
      matlab">A = [10, 20, 30, 40, 50];
      sub_array = A(2:4);  % 提取第二到第四个元素,结果为 [20, 30, 40]
      
  3. 数组的修改

    • 修改数组中的某个元素。
      matlab">A = [10, 20, 30, 40, 50];
      A(3) = 35;  % 修改第三个元素,结果为 [10, 20, 35, 40, 50]
      
  4. 数组的合并

    • 水平合并(列合并)。
      matlab">A = [1, 2, 3];
      B = [4, 5, 6];
      C = [A, B];  % 结果为 [1, 2, 3, 4, 5, 6]
      
    • 垂直合并(行合并)。
      matlab">A = [1, 2, 3];
      B = [4, 5, 6];
      C = [A; B];  % 结果为 [1, 2, 3; 4, 5, 6]
      
  5. 数组的基本运算

    • 数组加法。
      matlab">A = [1, 2, 3];
      B = [4, 5, 6];
      C = A + B;  % 结果为 [5, 7, 9]
      
    • 数组乘法(点乘)。
      matlab">A = [1, 2, 3];
      B = [4, 5, 6];
      C = A .* B;  % 结果为 [4, 10, 18]
      
  6. 数组的转置

    • 将行向量转为列向量,或将列向量转为行向量。
      matlab">A = [1, 2, 3];
      B = A';  % 结果为 [1; 2; 3]
      

示例代码

以下是一个包含上述操作的综合示例:

matlab">% 创建行向量和列向量
row_vector = [1 2 3 4 5];
column_vector = [1; 2; 3; 4; 5];% 创建矩阵
matrix = [1 2 3; 4 5 6; 7 8 9];% 访问数组元素
element = row_vector(3);% 数组切片
sub_array = row_vector(2:4);% 修改数组元素
row_vector(3) = 35;% 合并数组
A = [1, 2, 3];
B = [4, 5, 6];
C_horz = [A, B];
C_vert = [A; B];% 数组运算
sum_array = A + B;
prod_array = A .* B;% 数组转置
transposed_array = A';% 显示结果
disp('行向量:'), disp(row_vector);
disp('列向量:'), disp(column_vector);
disp('矩阵:'), disp(matrix);
disp('第三个元素:'), disp(element);
disp('切片结果:'), disp(sub_array);
disp('修改后的行向量:'), disp(row_vector);
disp('水平合并:'), disp(C_horz);
disp('垂直合并:'), disp(C_vert);
disp('数组加法结果:'), disp(sum_array);
disp('数组点乘结果:'), disp(prod_array);
disp('转置结果:'), disp(transposed_array);

通过上述示例代码,你可以全面了解 MATLAB 中数组的创建、操作和基本运算。


http://www.ppmy.cn/devtools/56206.html

相关文章

OverTheWire Bandit 靶场通关解析(中)

介绍 OverTheWire Bandit 是一个针对初学者设计的网络安全挑战平台,旨在帮助用户掌握基本的命令行操作和网络安全技能。Bandit 游戏包含一系列的关卡,每个关卡都需要解决特定的任务来获取进入下一关的凭证。通过逐步挑战更复杂的问题,用户可…

力扣每日一题 6/28 动态规划/数组

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 2742.给墙壁刷油漆【困难】 题目: 给你两个长度为 n 下标从 0…

使用Spring Boot创建自定义Starter

使用Spring Boot创建自定义Starter 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何使用Spring Boot创建自定义Starter,来简化项目…

[hive] posexplode生成从去年一月一号,到本月的月时间表

生成从去年一月一号,到本月的月时间表 posexplode用法: lateral view 表别名 as 序号列名,数组中的元素的名 1、生成序列 SELECT time_stamp_fist_day_of_last_year,--去年第一天的时间戳numfrom(SELECTsplit(repeat_o,,) o_array,time_stamp_fist_da…

算法训练 | 动态规划Part12 | 115.不同的子序列、72. 编辑距离

目录 115.不同的子序列 动态规划法 72.编辑距离 ⭐ 动态规划法 115.不同的子序列 题目链接:115. 不同的子序列 - 力扣(LeetCode) 文章讲解:代码随想录 动态规划法 解题思路 这道题目如果不是子序列,而是要求连…

如何使用Vue.js实现动态文档生成与下载功能

在现代Web应用开发中,用户往往需要在浏览器端完成复杂的操作,如生成和下载特定格式的文档,而无需服务器直接干预。本文将以一个Vue.js应用程序为例,详细介绍如何利用axios(或自定义请求模块)结合FileReader…

【小工具】导出Unity资源的预览缩略图

ExportPreviewTools 介绍 导出Unity资源的预览缩略图 使用场景 在某些情况下想要展示拥有的模型资源进行预览时,可以使用其快速预览功能。 工具原理 Selection类 //获取选中的资源的GUID string[] assetGUIDs Selection.assetGUIDs;AssetDatabase类操作资源…

【图像处理】1、使用OpenCV库图像轮廓的检测和绘制

OpenCV (Open Source Computer Vision Library) 是一个用于计算机视觉和图像处理的开源库。它提供了数百种用于图像和视频分析的算法,并被广泛应用于研究和商业领域。OpenCV 支持多种编程语言,包括 C、Python、Java 等,具有跨平台的特性&…