MATLAB基础——关于数组(一)
变量和数组
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基础——关于数组(一)相关推荐
- Matlab学习一本通,matlab基础教程
链接:https://pan.baidu.com/s/1uTCbiRfIxcrt6lmiy6_QlQ 提取码:f2dn Matlab学习一本通,matlab基础教程 <MATLAB R201 ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说,用numpy的主要目的在于应用矢量化运算.Numpy并没有多么高级的数据分析功能,理解Numpy ...
- matlab是以什么运算为基础,matlab基础练习题及答案讲解
第1章MATLAB基础 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 答:在MATLAB操作桌面上有五个窗口.在每个窗口的右上角 ...
- 天津大学matlab软件许可,天津大学《MATLAB基础和应用》课程教学大纲.PDF
天津大学<MATLAB 基础与应用>课程教学大纲 MATLAB 基础与 课程编号: 2160283 课程名称: 应用 学 时: 48 学 分: 2.5 学时分配: 授课: 28 上机: 2 ...
- matlab提取数据的一部分,matlab如何提取数组中的满足一定范围的一段数据
给定一个数组,如何让matlab生成一个这个数组中的一个随机数? x=[102030];x(randi(length(x)));其中randi(length(x))生成从1~(x的长度)这几个自然数中 ...
- MATLAB学习笔记2:MATLAB基础知识(下)
阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...
- matlab中exp(liangx),Matlab基础知识
<Matlab基础知识>由会员分享,可在线阅读,更多相关<Matlab基础知识(122页珍藏版)>请在人人文库网上搜索. 1.Lxy, China Jiliang Univer ...
- matlab基础总结与图像处理应用(上)
Q: how to improve my coding force level A: 我会找个教程/文档例子,把代码逐行敲一遍,感觉就像是我自己写的一样,一旦完成,我会从头重写一遍,添加注释,并根据自 ...
- 第一章 matlab 学习入门之matlab基础
matlab系列文章目录 第一章 matlab 学习入门之matlab基础 在这一章会学习到: 数据类型(数值,字符串,结构,单元数组,函数句柄,映射容器) 运算符与运算(算术运算符,关系运算符,逻辑 ...
最新文章
- CSS结构选择器四种结构关系的范围
- 百年通信史:落后西方半世纪的中国,用 20 年绝地反杀! | 文末送福利
- cocos2dx 3.3创建新项目 和 VS2012解决方案加载失败问题
- (十四)json、pickle与shelve模块
- 【转】做产品VS做项目
- 【机器学习算法专题(蓄力计划)】十八、机器学习中SVM算法中的硬间隔和软间隔
- linux修改su的PAM配置文件,linux pam安全认证模块su命令的安全隐患
- 终止中台乱象 《2021年中国中台市场研究报告》隆重发布
- 实现机器学习的循序渐进指南系列汇总
- 转载:详解C中volatile关键字
- 1.2-知识图谱有什么用?
- JSDOM案例:猜字游戏
- 在keil MDK中定义非初始化(noini)变量
- 纵观 Excel 演化史,开发者如何通过“表格技术”提升企业生产力
- ORACLE删除归档日志和ORA-00257问题
- 典型2R机械臂结构分析 2R-manipulator Geometric Modeling
- Bitbucket 介绍与使用
- 话说“软件测试”都是吃青春饭,可是为什么仍有那么多人转行做“软件测试”呢?
- 细数软件研发效能的七宗罪
- 智能制造企业应该具备软实力