MATLAB数据类型
MATLAB的数据是从1开始,而非常见的0。
%% 注释 clear all %清除Workspace中的所有变量 clc %清除Command Window中的所有命令
数字
字符与字符串
abs(a) % 输出a的ACSII码
num2str (65) % 输出输出65的ACSII码数字
length(str) % 计算机str字符串的长度
矩阵
A=[1 2 3;4 5 2; 3 2 7]
B=A' %矩阵的转置,行列互换
C=A: %竖着对矩阵拉伸
D=inv(A) %矩阵的逆,必须是方阵
A*D %相乘
E=zeros(10,5,3) %10行 5列 3个维度的矩阵
E(:,:,1)=rand(10,5)
E(:,:,2)=randi(5,10,5)
E(:,:,3)=randn(10,5)
rand、randi和randn的区别?
rand 生成均匀分布的伪随机数。分布在(0~1)之间
主要语法:
rand(m,n) %生成m行n列的均匀分布的伪随机数 rand(m,n,'double') %生成指定精度的均匀分布的伪随机数,参数还可以是'single' rand(RandStream,m,n) %利用指定的RandStream(我理解为随机种子)生成伪随机数
randn生成标准正态分布的伪随机数(均值为0,方差为1)
主要语法∶和上面一样
randi生成均匀分布的伪随机整数
主要语法:randi (iMax) %在开区间(0,iMax)生成均匀分布的伪随机整数 randi (iMae,m, n) %在开区间(0, iMax)生成mXn型随机矩阵 r = randi([iMin,iMax],m,n) %在开区间(iMin,iMax)生成m行n列随机矩阵
元胞数组
元胞数组是MATLAB中特有的一种数据类型,是数组的一种,其内部元素可以是属于不同的数据类型,概念理解上,可以认为它和c语言里面的结构体、C++里面的对象很类似。元胞数组是matlab中的特色数据类型,它不同于其它数据类型(如字符型,字符数组或者叫字符串,以及一般的算术数据和数组)。它特有的存取数据方法决定了它的特点,它有给人一种查询信息的感觉,可以逐渐追踪一直到所有的变量全部翻译成基本的数据信息。它的class函数输出就是cell(细胞之意)。
A = cell (1,6) %生成一个1行6列的一个元胞数组
A{2} = eye(3) %3*3并且对角线数值为1的单位矩阵
A{5} = magic(5) %生成的矩阵无论横、竖还是斜三个方向上的三个数的和总是相同的
magic:
magic字面意思是魔方.魔术的意思。在matlab中用来生成n阶幻方。比如三阶幻方就是1-9九个数字,组成一个3*3的矩阵使得该矩阵无论横、竖还是斜三个方向上的三个数的和总是相同的。幻方是一个很古老的问题你试一下就知道了!
magic(n)生成一个n阶幻方,就是把1-nA2排成一个nxn的矩阵,使得矩阵的每行、每列,以及主、副对角线上面的n个数之和都相等(容易证明,这个和等于n*(n^2+1)/2)。
结构体
books = struct('name', {{'Machine Learning', ' Data Mining'}}, 'price' , [30 40])
books. name %选择name属性
books. name(1) %选择对象为cell
books. name{1} %选择对象为具体值