用matlab怎么在矩阵后面加入一列自己想加的内容?
发布网友
发布时间:2022-05-06 10:53
我来回答
共2个回答
热心网友
时间:2022-06-29 19:52
其实这种不好用矩阵表示,因为数据格式不一样。最好的方法是matlab中的table或cell,推荐table。第一列是券商,第二列是市盈率,第三列是排名。为了实现你说的排名方法,应该在加两列,倒腾数据用,然后删除。假设券商m个,
temp = cell(m,4);
tab = cell2table(temp,'VariableNames',{'trader','earning','ranking','mmy1','mmy2'});
tab.trader = {'券商1'; '券商2’}; % 你把你提取出来的名字写成列向量。
tab.earning = 市盈率列向量;
tab.mmy1 = (1:m)' % 其实是券商的序号
sortrows(tab,'earning','descend') ; %按市盈率从高到低排名,你的是从低到高,那就把descend删掉。
tab.mmy2 = (1:m)' ; %排名
for ii = 1:m
tab.ranking{ii}=strcat(num2str(tab.mmy2(ii)),'/',num2str(m));
end
如果是按排名顺序,现在删掉多余的列即可;
tab(:,'mmy1')=[];
tab(:,'mmy2') = [];
如果按券商开始的顺序排名,那么还要倒腾一下。
sortrows(tab, 'mmy1');
然后删除多余的列。
其实更简单的是在excel中做,导入到matlab
热心网友
时间:2022-06-29 19:53
这要求应能实现,把你的数据发过来,我写程序、调试