2 条回复
我说下我想的: 1. 先对第一列按照日期分组; 2. 对于每一组,按照第二列排序; 3. 对排序后的数据利用find查找0的位置,由0的两端位置以及总行数就可以计算得到 |
燎原星火 发表于 2015-10-26 20:54 我试着编了下程序,先统计三天的数据,可是运行出来结果不对,麻烦前辈看看哪儿错了,不胜感激 % 读取2015年数据,stockdata2015为股票得分,double型数据,date2015为日期数据,cell型数据 [stockdata2015,date2015] = xlsread('股票得分.xlsx','2015'); stockdata2015 = num2cell(stockdata2015); stock2015 = [date2015,stockdata2015]; % 2015年数据个数 N = size(stock2015,1); day_1 = ['01';'02';'03';'04';'05';'06';'07';'08';'09';'10';'11';'12';'13';'14';'15';'16';'17';'18';... '19';'20';'21';'22';'23';'24';'25';'26';'27';'28';'29';'30';'31']; n1 = size(day_1,1); for i = 1:N for j = 1:3 time = strcat('2015','01',day_1(j,:)); switch time case '20150101' pos{j} = sum(stock2015{i,2} > 0); neu{j} = sum(stock2015{i,2} == 0); neg{j} = sum(stock2015{i,2} < 0); case '20150102' pos{j} = sum(stock2015{i,2} > 0); neu{j} = sum(stock2015{i,2} == 0); neg{j} = sum(stock2015{i,2} < 0); case '20150103' pos{j} = sum(stock2015{i,2} > 0); neu{j} = sum(stock2015{i,2} == 0); neg{j} = sum(stock2015{i,2} < 0); end end end |
Powered by Discuz! X3.4
© 2001-2022