【数学建模暑期培训】Matlab的数据处理

细胞数组

1.1 创建细胞数组

(1)使用赋值语句创建细胞 数组:细胞数组使用花括号 来创建,使用逗号 “,” 或空格分隔 同一行的 单元,使用分号 “;”来分行 .
(2)使用 cell 函数创建空细胞数组 .

A={'x', [2;3;6]; 10, 2*pi}
B=cell(2,2)
C={{'LiMing','LiHong'},{'0101','0102'}; {'f','m'},{[90,80],[88,80]}}

1.2 细胞数组的操作

函数说明
cell2struct(cellArray,field,dim)将细胞数组转化成结构数组
iscell©判断是否为细胞数组
strcut2cell(s)将结构数组转化为细胞数组
mat2cell(A,m,n)将矩阵拆分成细胞数组矩阵
cell2mat©将细胞数组合并成矩阵
num2cell(A)将数值数组转换成细胞数组
celldis©显示细胞数组内容
cellplot©显示细胞数组结构图

结构数组

2.1 创建结构数组

(1)直接给结构数组成员变量赋值建立结构数组
(2)利用函数struct建立结构数组

clc, clear
stu=struct('name',{'LiMing','LiHong'},'number',{'0101','0102'},...
'sex',{'f','m'},'score',{[90,80],[88,80]})
stu2=[stu,stu] %对两个结构数组进行连接
name1=stu2(4).name %提取结构数组stu2的第4个元素的name域的值
name2={stu2.name} %提取结构数组stu2的name域的所有取值,构成细胞数组

2.2 结构数组的操作

函数名作用
struct生成结构数组
fieldnames获取指定结构数组所有域名
getfield(s,‘field’)获取指定域的值
isfield(s,’field’)判断是否是指定结构数组中的域
orderfield (s)对结构数组域名 按首字符 重新排序
setfield(s,’field’,value)设置结构数组指定 域的 值
rmfield(s,’field’)删除指定结构数组中的 域
isstruct检查数组是否为结构类型

结构数组的操作

clc, clear
stu=struct('name',{'LiMing','LiHong'},'number',{'0101','0102'},...
'sex',{'f','m'},'score',{[90,80],[88,80]})
-1 48-
a=fieldnames(stu) %获取stu所有域名
b1=getfield(stu,'number') %获取第1个元素的number域的值
b2=getfield(stu,{2},'number') %获取第2个元素的number域的值
c=isfield(stu,'sex') %判断sex是否为stu中的域
stunew=orderfields(stu) %按结构数组域名首字符重新排序
rmfield(stu,'sex') %删除sex域

结构数组和细胞数组的相互转化.

clc, clear
s_cell={'LiMing','0101','M',20;'ZhangSan','0102','F',30} %建立细胞数组
fields={'name','number','sex','age'} %建立细胞数组
s_struct=cell2struct(s_cell,fields,2) %沿第2维方向,将细胞数组转换成结构数组
t_struct=struct('name',{'LiMing','LiHong'},'number',{'0101','0102'},...
'sex',{'f','m'},'age',{20,19}) %构造结构数组
t_cell=struct2cell(t_struct) %4个域的结构数组转换成4×1×2的细胞数组

数值数组

3.1 创建数值矩阵

1.直接输入
直接输入是最简单的矩阵构建方式。直接输入矩阵,应遵循如下几条规则:
(1)矩阵元素应当在方括号内;
(2)行内的元素,用逗号或者空格隔开;
(3)行与行之间,用分号或者回车分割;
(4)元素可以是数值或表达式。
2.通过语句和函数建立矩阵

t=[0:0.1:5] %产生从0 到5 的行向量,元素之间间隔为0.1。
t=linspace(n1,n2,n) %产生n1 和n2 之间线性均匀分布的n 个数 (缺省n 时,产生100 个
数)。
t=logspace(n1,n2,n) %在n1 10 和n2 10 之间按照对数距离等间距产生n 个数(缺省n 时,产
生50 个数)。

3.从外部数据文件中导入矩阵
例如从外部纯文本文件data1.txt 导入矩阵的命令为
a=load(‘data1.txt’)

a=textread(‘data1.txt’)

3.2 特殊矩阵

1.单位矩阵
eye(m) %生成m 阶单位阵。
eye(m,n) %生成m×n 矩阵,其中得到一个可允许的最大单位矩阵而其余处补0。
eye(size(a)) %生成与矩阵a 同样大小的单位矩阵。

2.全部元素为1的矩阵
ones(n) %生成全部元素为1 的n 阶方阵。
ones(size(a)) %生成与矩阵a 同样维数的全部元素为1 的矩阵。
ones(m,n) %生成全部元素为1 的m×n 矩阵。

3.全部元素为0的矩阵
zeros(n) %生成全部元素为0 的n 阶方阵。
zeros(m,n) %生成全部元素为0 的m×n 矩阵。

4.空矩阵
空矩阵是一个特殊矩阵,这在线性代数中是不存在的。例如
a=[ ]
矩阵a 在工作空间之中,但它的大小为零。通过空矩阵的办法可以删除矩阵的行与列。
例如
b(:,3)=[]
表示删除矩阵b 的第3 列。

5.随机数矩阵
rand(m,n) %产生m×n 矩阵,其中的元素是服从[0,1]区间上均匀分布的随机数。
randi([imin,imax],m,n) %生成m×n 矩阵,其中的元素为[imin,imax]区间上的随机整数。
normrnd(mu,sigma,m,n) %产生m×n 矩阵,其中的元素是服从均值为mu,标准差为sigma 的正态分布的随机数。
randn(m,n) %产生均值为产生均值为0,方差为,方差为1的正态分布的的正态分布的m×n随机数矩阵。随机数矩阵。
exprnd(mu,m,n) %%产生产生m×n矩阵,其中的元素是服从均值为矩阵,其中的元素是服从均值为mu的指数分布的随机数。的指数分布的随机数。
poissrnd(mu,m,n) %%产生产生m×n矩阵,其中的元素是服从均值为矩阵,其中的元素是服从均值为mu的泊松(的泊松(Poisson))分布的随机数。分布的随机数。
unifrnd(a,b,m,n) %%产生产生m×n矩阵,其中的元素是服从区间矩阵,其中的元素是服从区间[a,b]上均匀分布的随机数。上均匀分布的随机数。
mvnrnd(mu,sigma,n) %产生产生n对均值向量为对均值向量为mu,协方差矩阵为,协方差矩阵为sigma的多维正态分布的多维正态分布的随机数。的随机数。
randperm(n)产生产生1到到n的一个随机全排列。的一个随机全排列。
perms([1:n])产生产生1到到n的所有全排列。的所有全排列。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lydia.na

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值