Matlab(4)变数(变量)与档案存取

一、 MATLAB Data(Variables)

1. Types

Matlab(4)变数(变量)与档案存取_第1张图片

2. Type Conversion

Matlab(4)变数(变量)与档案存取_第2张图片

3. Character & String

(1)Character

用单引号括起来
unit16(char a) 将a转换成ASCII码

(2)String

同样是单引号括起来
可以使用[s1 s2](直接连接)或[s1;s2] (s1与s2需要长度相同,这将形成一个矩阵)扩展字符串
Matlab(4)变数(变量)与档案存取_第3张图片

(3)Logical Operations and Assignments

注意索引是从1开始,不是从零开始

  • 比较str中每一个元素是否等于a
    Matlab(4)变数(变量)与档案存取_第4张图片
  • str(str==‘a’)=‘Z’
    将会把str中a的位置都换成Z
    注意这里str=='a’输出的结果实际上是一个logical数组
    strcmp(s1,s2)比较两个字符串是否相等
    s1=reverse(s2)可以获得s2的逆转字符串

4. Structure

(1)定义

类似于对象
Matlab(4)变数(变量)与档案存取_第5张图片
也可以创建多个Student,注意要在Student后加(n)
Matlab(4)变数(变量)与档案存取_第6张图片

(2)Functions

Matlab(4)变数(变量)与档案存取_第7张图片
常用的是getfield和rmfield

(3)Nesting Structures

struct申明结构:struct(‘名字1’,数值1,‘名字2’,数值2…);
struct也可以是struct的组成部分
以下是两种定义方式:
Matlab(4)变数(变量)与档案存取_第8张图片

5. Cell Array(阵列)

即一个存放各种类型元素的矩阵,要用{}定义
Matlab(4)变数(变量)与档案存取_第9张图片

(1)Accessing Cell Array(读取)

使用{}读取该位置的数据,使用()读取该位置的数据类型。
Matlab(4)变数(变量)与档案存取_第10张图片

(2)function

Matlab(4)变数(变量)与档案存取_第11张图片
Example
Matlab(4)变数(变量)与档案存取_第12张图片

num2cell就是将矩阵转换成Cell 矩阵的每一个元素成为Cell的一个元素
在这里插入图片描述
Matlab(4)变数(变量)与档案存取_第13张图片
mat2cell:Matlab(4)变数(变量)与档案存取_第14张图片

(3)Multidimensional Array(多维)

example:
Matlab(4)变数(变量)与档案存取_第15张图片
赋值方式除了一个个位置赋值以外,还可以借助cat函数

  • cat()
    就是将两个矩阵相连,1是纵向连接,2是横向连接,3是三维连接。
    Matlab(4)变数(变量)与档案存取_第16张图片
  • reshape()
    假设A是一个R1*C1矩阵
    C=reshape(A)
    可将A转化为一个R2*C2矩阵
    变的是形状,不变的是顺序
    (指的是自左到右,自上到下的那个用一个数确定某一个元素位置的顺序)
    注意需要R1*C1=R2*C2

6. Checking

Matlab(4)变数(变量)与档案存取_第17张图片

二、File Access

Matlab(4)变数(变量)与档案存取_第18张图片

1. save()and load()

Matlab(4)变数(变量)与档案存取_第19张图片

-ascii表示能用一般的文字浏览器打开(且不乱码),也就是指定转码方式
load就是将存储在文件中的数据提取出来,如果save使用了-ascii,load时也要使用ascii
*
save 文件名 变量1 变量2…
可实现存储特定变量,如
save Test.mat A B
也可以在变量栏直接右键另存为(按住Ctrl可多选)

2. Excel File

(1)xlsread()

Example
score.xlsx
Matlab(4)变数(变量)与档案存取_第20张图片

若只用一个数组接收xlsread,那就只有数据
Matlab(4)变数(变量)与档案存取_第21张图片
也可以只读取指定位置
如:读取C2和D4为对角线的部分
Matlab(4)变数(变量)与档案存取_第22张图片

(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

Matlab(4)变数(变量)与档案存取_第23张图片
Matlab(4)变数(变量)与档案存取_第24张图片
Matlab(4)变数(变量)与档案存取_第25张图片

Example1
Matlab(4)变数(变量)与档案存取_第26张图片

type 显示文件内容
%5.3f表示五位小数,其中三位是小数点后位数

Example1
Matlab(4)变数(变量)与档案存取_第27张图片

"~"就是非
A( i , : ) 表示 A矩阵的第 i 行所有元素

你可能感兴趣的:(Matlab)