一、 MATLAB Data(Variables)
1. Types
2. Type Conversion
3. Character & String
(1)Character
用单引号括起来
unit16(char a) 将a转换成ASCII码
(2)String
同样是单引号括起来
可以使用[s1 s2](直接连接)或[s1;s2] (s1与s2需要长度相同,这将形成一个矩阵)扩展字符串
(3)Logical Operations and Assignments
注意索引是从1开始,不是从零开始
- 比较str中每一个元素是否等于a
- str(str==‘a’)=‘Z’
将会把str中a的位置都换成Z
注意这里str=='a’输出的结果实际上是一个logical数组
strcmp(s1,s2)比较两个字符串是否相等
s1=reverse(s2)可以获得s2的逆转字符串
4. Structure
(1)定义
类似于对象
也可以创建多个Student,注意要在Student后加(n)
(2)Functions
常用的是getfield和rmfield
(3)Nesting Structures
struct申明结构:struct(‘名字1’,数值1,‘名字2’,数值2…);
struct也可以是struct的组成部分
以下是两种定义方式:
5. Cell Array(阵列)
即一个存放各种类型元素的矩阵,要用{}定义
(1)Accessing Cell Array(读取)
使用{}读取该位置的数据,使用()读取该位置的数据类型。
(2)function
Example
num2cell就是将矩阵转换成Cell 矩阵的每一个元素成为Cell的一个元素
mat2cell:
(3)Multidimensional Array(多维)
example:
赋值方式除了一个个位置赋值以外,还可以借助cat函数
- cat()
就是将两个矩阵相连,1是纵向连接,2是横向连接,3是三维连接。
- reshape()
假设A是一个R1*C1矩阵
C=reshape(A)
可将A转化为一个R2*C2矩阵
变的是形状,不变的是顺序
(指的是自左到右,自上到下的那个用一个数确定某一个元素位置的顺序)
注意需要R1*C1=R2*C2
6. Checking
二、File Access
1. save()and load()
-ascii表示能用一般的文字浏览器打开(且不乱码),也就是指定转码方式
load就是将存储在文件中的数据提取出来,如果save使用了-ascii,load时也要使用ascii
*
save 文件名 变量1 变量2…
可实现存储特定变量,如
save Test.mat A B
也可以在变量栏直接右键另存为(按住Ctrl可多选)
2. Excel File
(1)xlsread()
Example
score.xlsx
若只用一个数组接收xlsread,那就只有数据
也可以只读取指定位置
如:读取C2和D4为对角线的部分
(2)xlswrite()
Example
计算每个学生的平均成绩并写入表中
M=mean(score’)’;
因为mean是求每列的平均值,而这里我们需要的是求每一行的平均值,所以要用" ’ "转置符
xlswrite(‘score.xlsx’,M,1,‘E2:E4’);
xlswrite(文件名,要写入的内容,sheet(表示xlsx中的第几张表),要写入的位置)
xlswrite(‘score.xlsx’,{‘Mean’},1,‘E1’)
这里’Mean’需要用大括号括起来,即将’mean’作为一个元素写入,不加大括号的话将会导致:
getting text
因为读取时其实是将文字与数据分成两个表读取的,所以:
同样,想要同时存储文字与数据时只要把这两个表存入同一个位置就行
3. Low-leve File Input/Out
Example1
type 显示文件内容
%5.3f表示五位小数,其中三位是小数点后位数
Example1
"~"就是非
A( i , : ) 表示 A矩阵的第 i 行所有元素