完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
`添加排名之前:添加排名之后:
请问我想写一段程序,在提取的矩阵中的最后一列添加一列“排名”项(本来2列,添加之后3列,在第3列中添加排名),如图所示,之前排序的功能我已用sort函数实现,现在想知道怎么实现上图的功能,求程序啊,本人新手,万分感谢。 ` |
|
相关推荐
2个回答
|
|
LZ做个execl表格直接导入啊不更简单
|
|
|
|
其实这种不好用矩阵表示,因为数据格式不一样。最好的方法是matlab中的table或cell,推荐table。第一列是券商,第二列是市盈率,第三列是排名。为了实现你说的排名方法,应该在加两列,倒腾数据用,然后删除。假设券商m个,
temp = cell(m,4); tab = cell2table(temp,'VariableNames',{'trader','earning','ranking','dummy1','dummy2'}); tab.trader = {'券商1'; '券商2’}; % 你把你提取出来的名字写成列向量。 tab.earning = 市盈率列向量; tab.dummy1 = (1:m)' % 其实是券商的序号 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') = []; 如果按券商开始的顺序排名,那么还要倒腾一下。 sortrows(tab, 'dummy1'); 然后删除多余的列。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-28 20:49 , Processed in 0.301884 second(s), Total 40, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号