用matlab怎么在矩阵后面加入一列自己想加的内容? 50

用matlab怎么在矩阵后面加入一列自己想加的内容?我想在提取的市盈率矩阵中的最后一列添加一列“排名”项(本来2列,添加之后3列,在第3列中添加排名),排名项是“i/n”... 用matlab怎么在矩阵后面加入一列自己想加的内容?我想在提取的市盈率矩阵中的最后一列添加一列“排名”项(本来2列,添加之后3列,在第3列中添加排名),排名项是“i/n”的格式,如图所示,我想知道怎么实现上图的功能,程序怎么写?求指导,万分感谢!
http://pan.baidu.com/s/1eQ50uYI
展开
 我来答
漆颖0gE
推荐于2017-12-16 · TA获得超过374个赞
知道小有建树答主
回答量:207
采纳率:75%
帮助的人:141万
展开全部

其实这种不好用矩阵表示,因为数据格式不一样。最好的方法是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');

然后删除多余的列。

 

其实更简单的是在excel中做,导入到matlab

我行我素850915
2015-07-02 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1724万
展开全部
这要求应能实现,把你的数据发过来,我写程序、调试
更多追问追答
追问
网盘已经挂上了,谢谢啦!
追答
排名项按i/n”的格式不行,会出现“i月/n日”,与日期格式相同。可否按“i//n”格式?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式