⑴ matlab如何實現數據合並和篩選
>>a
a=
111111
222222
444444
>>b
b=
22222
33333
4粗孫4444
頌態55555
>>[c,ai,bi]=intersect(a(:,1),b(:,1))
c=
2
4
ai=
2
3
bi=
1
3
>>u=[c,a(ai,2:end),b(bi,2:end)]
u=
2222222222
岩櫻鏈4444444444
關鍵就是intersect這個函數,和矩陣拼接
⑵ matlab幾百個子程序代碼合並為一個文檔
matlab幾百個子程序代碼洞哪合並為一個文檔,必須都是function,
如早顫坦果你的主程序是普通的m程序,不是function,而子程序是function,這兩個程序是不能寫在一起的
舉個例子:
%主程序
a=1;
b=2;
c=addfun(a,b)
% 子程序
function c=addfun(a,b)
c=a+b;
return
以上是不能寫在一個m文件里的。
但是
function mainfun()
clc
a=1;
b=2;
c=addfun(a,b)
% 子程序
function c=addfun(a,b)
c=a+b;
return
這樣子時可以的,可以直接運行。不過當程序運行結束後,陸桐你將無法查看主程序和子程序的變數的值
⑶ MATLAB 如何導入股票數據,並畫出K線
需要幾個關鍵步驟 (函數應用需要自己多用help 學習)
1自己先下載原始數據格式 時間 開 高 低 收
1 讀取數據 xlsread 函數
[num,txt,raw]=xlsread(filename); % 『000001.xls'
Date=datenum(txt(5:length(txt),1)); %時間
OpenPrice=num(:,1); %開盤
HighPrice=num(:,2); %收盤
LowPrice=num(:,3);
ClosePrice=num(:,4);
Vol=num(:,5); %成交量
save Data Date OpenPrice HighPrice LowPrice ClosePrice Vol; %存儲mat文件 方便下次使用
candle(HighPrice,LowPrice,ClosePrice,OpenPrice,'r',Date,12)%高 低 收 開 紅色 時間 時間格式
⑷ MATLAB里將有命名規則的多個序列合並成面板數據形式
去看下函數eval的幫助吧
⑸ 用matlab怎麼算股票價格的收益率,怎麼得出收益率的圖~
用matlab算股票價格的收益率的方法:
在matlab裡面通常指令是:log(Xt/Xt-1)。
其中Xt是某股票或某指數第t天的價格;
其中Xt-1是某股票或某指數第t-1天的價格.
股票收益率簡介:
股票收益率指投資於股票所獲得的收益總額與原始投資額的比率。股票得到投資者的青睞,是因為購買股票所帶來的收益。股票的絕對收益率就是股息,相對收益就是股票收益率。
⑹ 關於利用matlab繪制股票線型的數據問題
從bggf.mat 讀得的bggf數據看上去有4列
看你用highlow 函數的調用方式,這四列應該是
開市價 最高價 最低價 收市價
而r是用size獲得的數據的行數
之所以報錯就是bggf(r-100:r,2)取下標的時候錯了
r是數據的行數,肯定是個正整數沒錯,錯就錯在r-100
你文件裡面的數據如果不足100行,那麼r-100就會出現負數
數據正好是100行,那麼r-100就會等於0
在matlab裡面,下標是從1開始的正整數,所以發生以上情況就會錯
如果你的數據是剛剛好100行的,那麼完全不用這么麻煩,直接用:代替就可以了
highlow(bggf(:,2),bggf(:,3),bggf(:,4),bggf(:,1),'r')
但是這樣寫無論是數據有多少行,圖都會照畫,不足100行,超過100行照單全收
如果你的數據有超過100行,你只想取最後的100行,你應該減99而不是100
highlow(bggf(r-99:r,2),bggf(r-99:r,3),bggf(r-99:r,4),bggf(r-9:r,1),'r')
但是當數據不足行時,這樣寫會同樣報錯
⑺ 如何用MATLAB對股票數據做聚類分析
直接調kmeans函數。
k = 3;%類別數
idx = kmeans(X, k);%idx就是每個樣本點的標號。
⑻ Matlab中的數據合並問題。
你這個Y中第一列的數據如果是唯一的話,可以用下面程序來做。
clc;clear;
X=[19911331;
1992缺裂絕5665;
19939999;
19912222;
19926666;
19938888;
源租19914444;
19926666];
Y=[19917777;
19928888;
19939999];
[a,b]=size(X);
tmp=zeros(a,b-1);
fori=1:a
b=find(Y(:,1)==X(i,1));
tmp(i,:)=伏姿Y(b,2:end);
end
Z=[X,tmp]
結果為:
懶得寫注釋了,不懂再追問吧。