freemat
变量与数组
矩阵
单行/一维矩阵创建
1 2
| --> a=[val1,val2,val3,...valn] --> a=[val1 val2 val3 ...valn]
|
多行/多维矩阵创建
1 2 3 4
| --> a=[val1 val2 val3;val4 val5 val6;val7 val8 val9] --> z=zeros(5,1) --> o=ones(7,8) --> r=rand(3,8)
|
矩阵运算
常规运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| --> a=[1 2 3;4 5 6;7 8 9] a = 1 2 3 4 5 6 7 8 9 --> a+10 ans = 11 12 13 14 15 16 17 18 19 --> a*10 ans = 10 20 30 40 50 60 70 80 90
|
转置矩阵
1 2 3 4 5
| --> a' ans = 1 4 7 2 5 8 3 6 9
|
修改矩阵
1 2 3 4 5
| --> a(3,3)=10 a = 1 2 3 4 5 6 7 8 10
|
逆矩阵
1 2 3 4 5
| --> inv(a) ans = -0.6667 -1.3333 1.0000 -0.6667 3.6667 -2.0000 1.0000 -2.0000 1.0000
|
矩阵相乘
1 2 3 4 5
| --> a*inv(a) ans = 1.0000 0 -0.0000 0 1.0000 0 0 0 1.0000
|
修改精确度
精确度表
| format short | 精确到小数点后四位 |
| format long | 精确到小数点后十六位 |
| format rat | 用有理数模拟逼近无理数 |
| format short e | 用科学计数法表示,且精确到小数点后四位 |
| format long e | 用科学计数法表示,且精确到小数点后十六位 |
1 2 3 4 5 6
| --> format long --> a*inv(a) ans = 1.00000000000000 0 -0.00000000000000 0 1.00000000000000 0 0 0 1.00000000000000
|
水平串联
1 2 3 4 5
| --> A=[a a] A = 1 2 3 1 2 3 4 5 6 4 5 6 7 8 10 7 8 10
|
垂直串联
1 2 3 4 5 6 7 8
| --> A=[a;a] A = 1 2 3 4 5 6 7 8 10 1 2 3 4 5 6 7 8 10
|
数组索引
数组索引不和普通数组一样从0开始索引,例如二维数组,第一个元素就是A(1,1)
解除变量
clear A
结构索引
1
| variable.fieldname='value'
|
字段方法
1 2 3
| fieldname getfield(variable,'field') setfield(variable,'field')
|
单元数组
单元数组定义
单元数组(Cell Array)将类型不同的相关数据集成到一个单一的变量中,使得大量相关数据的引用和处理变得简单方便;需要注意的是,单元数组仅仅是承载其他数据类型的容器,大部分的数学运算只是针对其中的具体数据进行的,而非针对单元数组本身进行。单元数组中的每一个元素称为单元(cell),单元可以包含任何类型的数据,如数值数组、字符、符号对象,甚至于其他的单元数组。单元数组可以使不同类型和不同维数的数组可以共存,细胞型数组实际上可以认为是一种以任意形式的数组为分量的多维数组。
单元数组的赋值
1
| A={row_def1;row_def2;row_def3;...row_defi}
|
单元定义的赋值
1
| row_defi= element_i1,element_i2,element_i3...element_iM
|