变量和数组

MATLAB程序的基本数据单元是数组,标量在MATLAB中也被当做数组来处理
数组可以定义为向量(一般描述为一维数组)或矩阵(一般描述为二维或多维)
访问数组中的元素:数组名+()
MATLAB变量名的命名:以字母开头,可跟字母、数字、下划线,只有前31个字符有效
区分字母的大小写

强类型语言

像C语言一样:

int a;
double b;

弱类型语言

像Matlab、Python一样:

c = 'l am a student'
% 不需要给变量设定一个变量类型
% 而只需通过复制形式创建类型,且变量类型取决于创建时的类型

变量的初始化

赋值语句初始化

input函数从键盘输入初始化变量



ans=0 说明输入的不是一个整形

从文件读取一个数据

赋值输入

一个数组的每行元素的个数必须完全相同,每一列元素的个数也必须完全相同

对数组中元素的访问,采用 数组名 (number)的形式,number是从1开始。

a1=[0,2,4];
b=[a1(2) a1];
b

b =

 2     0     2     4

定义数组的时候不是每个元素都要定义

c(2,3)=5

c =

 0     0     00     0     5

指定数组中的一个元素赋值,其余默认为零
如果给一个数组赋值的元素超出了数组的大小的话,会新创一个数组(语文水平不高,还是matlab菜鸟,见谅,不懂看一下代码就晓得了)

d=[1,4]

d =

 1     4

d(3)=8

d =

 1     4     8

每个语句的末尾分号用来紧致变量值在命令窗口的重复

表达式赋值

matlab中的克隆运算符为:first:incr:last(起始位置,步长,终止位置)

x=1:2:10

x =

 1     3     5     7     9

类似于Python中的切片

 a = [1,2,3,4,5,6,7,8]for i in a[::-1]:print(i)

结果为:8 7 6 5 4 3 2 1
但是Python中的第一个是起始位置,第二个是终止位置,最后一个是步长

matlab中的0.01表示注意

x=(.01:.01:.1)*pi
% 该式子的起始是0.01 步长为0.01,终止位置为0.1
x =

1 至 8 列

0.0314    0.0628    0.0942    0.1257    0.1571    0.1885    0.2199    0.2513

9 至 10 列

0.2827    0.3142

转置运算符 '(英文单引号)

d=[1:5]

d =

 1     2     3     4     5

h=[d’]

h =

 12345

zeros函数(全零矩阵)

a=zeros(2)

a =

 0     00     0

% 如果只有一个参数则生成n阶矩阵,如果给了m,n两个参数则生成mXn矩阵

b=zeros(2,4)

b =

 0     0     0     00     0     0     0

ones(n) and one(m,n)

一个参数,生成n阶一矩阵
两个参数,生成mXn矩阵,eye函数相同
创建一个全1矩阵

a=ones(3)

a =

 1     1     11     1     11     1     1

a=ones(3,4)

a =

 1     1     1     11     1     1     11     1     1     1

b=eye(2)

eye(n) and eye(m,n)

生成单位矩阵
b =

 1     00     1

b=eye(2,3)

b =

 1     0     00     1     0

向量或数组的长度(取最大值)

length(b)

ans =

 3

size(矩阵的大小)

size(b)

ans =

 2     3

矩阵、数组、向量

A=[1,2;3,4;5,6]

A =

 1     23     45     6

B=[1,2,3,4]

B =

 1     2     3     4

C=[B’]

C =

 1234

A是2X3的矩阵,B是一个一维行向量,C是一个一维行向量

多维数组

c(:,:,1)=[1,2,3;4,5,6]
c1(:,:,2)=[1,2,3;4,5,6]

c =

 1     2     34     5     6

whos c
Name Size Bytes Class Attributes

c 2x3 48 double
c1(:,:,2) =

 1     2     34     5     6

whos c1
Name Size Bytes Class Attributes

c1 2x3x2 96 double

MATLAB中以列主导顺序分类数组中的元素

a=[1,2,3;4,5,6;7,8,9;10,11,12]

a =

 1     2     34     5     67     8     9
10    11    12

a(4)

ans =

10

a(2)

ans =

 4

a(5)

ans =

 2

a(1,2)

ans =

 2

a(4,1)

ans =

10

数组名(object),object可以是一个数字(第几个),也可以是两个数字(几行几列)

子数组

使用克隆运算符

a(:,1:1:3)

ans =

 1     2     34     5     67     8     9
10    11    12

a(:,1:2:3)

ans =

 1     34     67     9
10    12

a(:,1:3:3)

ans =

 147
10

a(1,:)

ans =

 1     2     3

a(2,:)

ans =

 4     5     6

a(3,:)

ans =

 7     8     9

a(4,:)

ans =

10    11    12

a(5,:)
索引超出矩阵维度。

a(:,1)

ans =

 147
10

a(:,2)

ans =

 258
11

a(:,3)

ans =

 369
12

a(:,4)
索引超出矩阵维度。

end函数

a

a =

 1     2     34     5     67     8     9
10    11    12

a(3:end,3:end)

ans =

 9
12

这里的a(行,列),类似于Python中的索引(切片)

x=[1,2,3,4,5,6,7,8]
print(x[3:])


将会从下标为3的元素开始直到结束

更改数组元素的值

子数组赋值只会改变部分值,如果直接赋值则会先把该数组原有内容删除,再赋新值

a

a =

 1     2     34     5     67     8     9
10    11    12

a(1:3,[2,3])=[22,33;55,66;88,99]
% 1:3 表示1到3行,[2,3]表示2到3列剩下的为更换的值,更换的值也可以用一个数字表示,则所要更改的元素都为该数字
a =

 1    22    334    55    667    88    99
10    11    12

MATLAB基础——关于数组(一)相关推荐

  1. Matlab学习一本通,matlab基础教程

    链接:https://pan.baidu.com/s/1uTCbiRfIxcrt6lmiy6_QlQ  提取码:f2dn  Matlab学习一本通,matlab基础教程 <MATLAB R201 ...

  2. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说,用numpy的主要目的在于应用矢量化运算.Numpy并没有多么高级的数据分析功能,理解Numpy ...

  3. matlab是以什么运算为基础,matlab基础练习题及答案讲解

    第1章MATLAB基础 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 答:在MATLAB操作桌面上有五个窗口.在每个窗口的右上角 ...

  4. 天津大学matlab软件许可,天津大学《MATLAB基础和应用》课程教学大纲.PDF

    天津大学<MATLAB 基础与应用>课程教学大纲 MATLAB 基础与 课程编号: 2160283 课程名称: 应用 学 时: 48 学 分: 2.5 学时分配: 授课: 28 上机: 2 ...

  5. matlab提取数据的一部分,matlab如何提取数组中的满足一定范围的一段数据

    给定一个数组,如何让matlab生成一个这个数组中的一个随机数? x=[102030];x(randi(length(x)));其中randi(length(x))生成从1~(x的长度)这几个自然数中 ...

  6. MATLAB学习笔记2:MATLAB基础知识(下)

    阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...

  7. matlab中exp(liangx),Matlab基础知识

    <Matlab基础知识>由会员分享,可在线阅读,更多相关<Matlab基础知识(122页珍藏版)>请在人人文库网上搜索. 1.Lxy, China Jiliang Univer ...

  8. matlab基础总结与图像处理应用(上)

    Q: how to improve my coding force level A: 我会找个教程/文档例子,把代码逐行敲一遍,感觉就像是我自己写的一样,一旦完成,我会从头重写一遍,添加注释,并根据自 ...

  9. 第一章 matlab 学习入门之matlab基础

    matlab系列文章目录 第一章 matlab 学习入门之matlab基础 在这一章会学习到: 数据类型(数值,字符串,结构,单元数组,函数句柄,映射容器) 运算符与运算(算术运算符,关系运算符,逻辑 ...

最新文章

  1. CSS结构选择器四种结构关系的范围
  2. 百年通信史:落后西方半世纪的中国,用 20 年绝地反杀! | 文末送福利
  3. cocos2dx 3.3创建新项目 和 VS2012解决方案加载失败问题
  4. (十四)json、pickle与shelve模块
  5. 【转】做产品VS做项目
  6. 【机器学习算法专题(蓄力计划)】十八、机器学习中SVM算法中的硬间隔和软间隔
  7. linux修改su的PAM配置文件,linux pam安全认证模块su命令的安全隐患
  8. 终止中台乱象 《2021年中国中台市场研究报告》隆重发布
  9. 实现机器学习的循序渐进指南系列汇总
  10. 转载:详解C中volatile关键字
  11. 1.2-知识图谱有什么用?
  12. JSDOM案例:猜字游戏
  13. 在keil MDK中定义非初始化(noini)变量
  14. 纵观 Excel 演化史,开发者如何通过“表格技术”提升企业生产力
  15. ORACLE删除归档日志和ORA-00257问题
  16. 典型2R机械臂结构分析 2R-manipulator Geometric Modeling
  17. Bitbucket 介绍与使用
  18. 话说“软件测试”都是吃青春饭,可是为什么仍有那么多人转行做“软件测试”呢?
  19. 细数软件研发效能的七宗罪
  20. 智能制造企业应该具备软实力

热门文章

  1. 腾讯公测云开发低码!全网首篇实战评测
  2. 模型描述的关系模式_单位根检验、协整检验和格兰杰因果关系检验三者之间的关系...
  3. 电脑的基本操作技巧集合
  4. 多项式求值的秦九韶算法
  5. 瞎说springboot
  6. Android系统的软件OpenGL介绍以及移植
  7. 【三节课数据分析】ch3.数据分析的九种方法
  8. Python爬取新闻动态评论
  9. 超牛*的帝国数据库恢复。哈哈
  10. fcitx重启 linux_装Fcitx后用在终端打入命令fcitx出现如下错误。刚入门。求助