[問題] 想讓函數能夠繼續用母集內的迴圈已回收

看板MATLAB作者 (卜拉)時間15年前 (2010/05/24 23:52), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
這個問題可能很笨 但是我想了好一陣子了 都不知道該怎麼解決 有請版上的大大幫忙解答!非常感謝!~ data=[20100101 20100102 20100103]; for x=2:length(data) d=load(['mat' int2str(data(x)) '.txt'],'-ascii'); e=load(['par201001.txt'],'-ascii'); eratela1=d; eratela2=e; [la,la1]=size(eratela1); [ja,ja1]=size(eratela2); s=eratela1(:,1); k=eratela1(:,2); pa1=eratela2(:,1); pa2=eratela2(:,2); pric=zeros(size(s)); for i=1:length(s) pric(i)=s(i)*pa1(x-1)+k(i)*pa2(x-1) end; save(['theopric' int2str(data(x)) '.txt'],'pric','-ascii'); end; x是指第幾天 第一天是20100101 第二天20100102 第三天20100103 i則是特定某一天內的第幾筆資料 我是想要把 mat20100102 那天很多筆的 s 與 k 全部乘上 par201001 前一天,也就是 20100101 的 pa1 與 pa2 而 mat20100103 那天的 s 與 k ,則是乘上前一天 20100102 的 pa1 與 pa2 其中 par201001 內第一筆的 pa1 與 pa2 是20100101的資料, 第二筆是20100102的資料 目前這樣寫沒有問題 算出來的值都正確 但是我想把黃色的部分另外寫一個function去計算pric 可能像 function pric=ohpric(s,k,pa1,pa2) 這樣 我目前就卡在 要如何在 想在外面另外寫一個function的情況下 讓某一天的 s 與 k 知道 他們要乘的是前一天的 pa1 與 pa2 因為第幾天的索引值 x 是在母集那邊 沒辦法像我現在寫的這樣直接標個 pa1(x-1) 與 pa2(x-1) 就能跑出結果 非常感謝各位大大看完小弟落落長的問題!! 謝謝!!~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.217.163

05/25 00:24, , 1F
你把索引值一起傳進去就好了不是?
05/25 00:24, 1F

05/25 01:19, , 2F
p大的意思是說在函數後面加x嗎@@?
05/25 01:19, 2F

05/25 01:27, , 3F
那我試試看!多謝:)
05/25 01:27, 3F

05/25 01:34, , 4F
成功了~matlab好神阿~
05/25 01:34, 4F
文章代碼(AID): #1B-g3DCC (MATLAB)