Matlab 3 :矩阵下部分稀疏矩阵 结构体 元胞

1 稀疏矩阵

1.1 什么是稀疏矩阵呢

       一些矩阵中的大量元素为0元素,我们可以称为稀疏矩阵sparse matrix,与之相反的我们叫做全矩阵。

MATLAB的矩阵有两种存储方式:完全存储方式和稀疏存储方式。

完全存储方式

完全存储方式是将矩阵的全部元素存储,以前讲到的矩阵存储方式都是按这个方式存储的。

稀疏存储方式

稀疏存储方式仅存储矩阵所有的非零元素的值及其在矩阵中的位置,即行号和列号。在MATLAB中,稀疏存储方式是按列存储的。

1.2 稀疏矩阵使用

A = sparse(B);                    %将矩阵B转化为稀疏存储方式的矩阵A

A = sparse(m,n);               %生成一个m×n的所有元素都是0的稀疏矩阵A

A = sparse(u,v,a);                     %a为非零元素,u,v为下标

A = sparse(u,v,a,m,n);      %生成一个m×n的稀疏矩阵A,非零元素为a,位置(u,v)

[u,v,a] = find(A);                %返回矩阵A中非0元素的下标和元素。

full(A);                               %返回矩阵A对应的完全存储方式矩阵。

spy(A);                               %观察A矩阵

a = sparse(1:1000,1:1000,1,1000,1000);

 

2. 结构体

2.1结构体特性

       结构体在很多语言中都有,matlab的结构体允许用户将不同种类的数据存放在他的各个域中。

       book.name = ‘matlab’;

       book.page = 500;

       book.time = 2010;

       book.a = [1,3,5,7]

之后输入结构体名称就可以进行访问,也可以访问某元素:

       book

       book.a(2)

结构体内可以为任何变量哦,当然也可以是结构体。

2.2 结构体函数

 

isstruct

判断是否为结构变量

isfield

判断是否为某结构的域field

setfield

设置结构变量中域的值

getfield

获取结构变量中域的值

fieldnames

获取结构变量中所有域的名称

rmfield

删除结构变量中指定的域

struct2cell,
cell2struct.

结构变量和cell元胞数组的相互转换

 

3. 元胞

matlab中,元胞可以看作是一种容器,可以存一切类型的数据,包括元胞类型。元宝组成的阵列通常称为元胞阵列。

c{1,1} = [99,67];

c{1,2} = char(‘matlab’);

c{2,1} = randn(1);

c{2,2} = book;

元胞是通过{}进行索引的。

b = {[1:3],book(2),python,{1,2}};

a = cell(2,2);

绘制元胞图像:

cellplot(c);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值