Matlab cell table struct

Matlab中cell、table和struct三种Array都可以存储不同类型的数据,以table最为灵活。用cell2table和table2cell可以使cell和table互相转换。

读取cell中的数据可以用{}或()。例如,读取cell类型A的第二个数据可以用A{2},也可以A(2),区别在于()获取的类型是cell数组 ,{}是实际类型。如果想删除cell某个数据,必须用()。例如删除第2个数据的命令为matlabA(2) = []
A{2}=[]只会使A的第二个元素置为空。

有个网友在百度知道上提问过,如何在matlab中用矩阵第一列表示券商,第二列表示券商的市盈率,第三列表示排名。这个其实在excel中很好处理,在matlab中也可用table表示。


temp = cell(m,4); 

tab = cell2table(temp,'VariableNames',{'trader','earning','ranking','dummy1','dummy2'}); 

tab.trader = {'券商1';  '券商2’};  % 把券商用cell表示。 

tab.earning = 市盈率列向量;% 直接用列向量,不用cell 

tab.dummy1 = (1:m)'  % 其实是券商的序号 

tab = sortrows(tab,'earning','descend') ;  %按市盈率从高到低排名,你的是从低到高,那就把descend删掉。 

tab.dummy2 = (1:m)' ; %排名 

for ii = 1:m 

     tab.ranking{ii}=strcat(num2str(tab.dummy2(ii)),'/',num2str(m)); 

end  

如果是按排名顺序,现在删掉多余的列即可;


tab(:,'dummy1')=[]; 

tab(:,'dummy2') = [];  

如果按券商开始的顺序排名,那么还要倒腾一下。


tab = sortrows(tab, 'dummy1'); 

从这个例子可以看出,table处理数据是非常灵活的。

table是matlab近年来引入的,个人用的是2014b。

转载于:https://www.cnblogs.com/civftor/p/4609043.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值