www.日韩av.com,亚洲不卡av一区二区三区,天堂av在线网,成人福利视频在线看

matlab 刪除數據里NaN和0過多的列,以及對應的股票代碼

2017-01-17  by:CAE仿真在線  來源:互聯網

數據如下:
http://pan.baidu.com/s/1hsBij4o
這是朋友在研究過程中遇到的一個問題,數據a1是324*123,123是123只股票,324是324個交易日,因為對于交易數據長時間缺失的股票無法進行后續的計算,所以朋友要求對每一只股票進行檢查,刪除NaN值和零值的個數之和超過一半交易日的股票;
同時a2代表的股票代碼,因為股票已經被刪除,所以碼表里對應的股票代碼也應該被刪除;
a2是123*6的char,123指的是123個股票代碼,6指的是6個數字,如600001;

具體的處理過程如下:
%計算NaN的個數
function [ a1,cellb] = dataadjust ( a1,a2)
judgenan=isnan(a1);%對數據中的NaN進行判斷,得到一個和a1同大小的矩陣,如果是NaN返回1,否則返回零
numnan=sum(judgenan);%對每一列進行加總,計算出每一個列NaN值的個數

%下面計算0的個數
trans=a1;
trans(judgenan)=1;%將NaN轉化為1
judgezero=~trans;%將trans值進行邏輯判斷,對于0返回1,其他返回零
numzero=sum(judgezero);%將每一列加總,得到每一列里面0的個數
total=numnan+numzero;%計算每一列0和NaN的個數之和

%進行相應數據的刪除
cellb=cell(size(a2,1),1);
for i=1:size(cellb,1)
cellb{i}=a2(i,1:6) ;
end%將char轉換為cell

for i=size(a1,2):-1:1%遍歷每一只股票
if total(i)>=162%如果NaN和0的個數大于162
a1(:,i)=[];%刪除a1中的數據,
cellb{i}=[];%刪除股票代碼
cellb(cellfun(@isempty,cellb))=[];%刪除股票代碼
end
end

end
%處理結果a3,a4所示

開放分享:優質有限元技術文章,助你自學成才

相關標簽搜索:matlab 刪除數據里NaN和0過多的列,以及對應的股票代碼 MatLab培訓 MatLab培訓課程 MatLab在線視頻教程 MatLab技術學習教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎知識 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 

編輯
在線報名:
  • 客服在線請直接聯系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com




主站蜘蛛池模板: 保山市| 融水| 徐州市| 环江| 民权县| 桓仁| 合水县| 伊金霍洛旗| 柳江县| 邵东县| 中阳县| 行唐县| 南康市| 濉溪县| 湖南省| 富裕县| 闸北区| 正宁县| 全州县| 上杭县| 永寿县| 横峰县| 格尔木市| 恩平市| 柳江县| 姚安县| 连山| 成安县| 东至县| 灵寿县| 荃湾区| 铁岭市| 常熟市| 西藏| 汉源县| 丘北县| 罗源县| 昌邑市| 麻城市| 武川县| 梨树县|