Re: [討論] 連續資料讀入及執行計算式問題(一萬p)已回收

看板MATLAB作者 (想說話)時間14年前 (2011/07/03 13:10), 編輯推噓3(301)
留言4則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《pidasing (乂倒吊子乂)》之銘言: : 我再對這個點做運算是得到結果 第二位置的點一樣 也是一百比 進行運算 : 我現在想法是 將總比數看成 300 x 180 : 將資料依照每個檔案的x y 讀入 : 例如 1.5 1 xxx資料讀入矩陣的(1,1) 1.5 2 xxx 值讀入(1,2) : 以此類推 300x 180 的網格中 每個網格都是那個地點的100天的資料 : 然後再分別將每個網格分別執行計算式 並儲存結果 : 本人是matlab超級初新手 我實在不知道如何下手 : 希望有好心人幫幫忙 看要回復或寄封信給我 : 也可以站內信往來大概教我一下 : 如果有好心人可以幫我完成這個忙的話 : 我會提供10000p作為感謝的報酬 : 謝大家~~~ : ~ : ps.我這不是學校作業(學生暑假已經開始放了) : 單純是一位被老闆壓榨的且matlab超弱的樸實員工 : 請大家多多幫忙,拜託拜託!! 如果你的資料格式是*.txt的話 MATLAB就可以直接讀入 像是 data = load('Day1.txt'); 如果你的Day1.txt裡面是像這樣的話: 1.5 1 -0.013 1.5 2 -0.011 1.5 3 0.412 2.5 1 0.0123 2.5 2 0.3111 2.5 3 0.4444 data的資料型態就會是 6x3 double 另外因為你的資料數量都是規律的 你根據簡單的邏輯就可以推得不同座標的index是多少 就可以拿來運算 至於不同天的資料 如果你指的是每一天都有自己的txt檔 像是 Day1.txt Day2.txt 你就可以在讀入的時候 利用迴圈跟sprintf來逐筆讀入 放在structure裡面 以只有兩天的檔案 舉個例子 % sequence data import % ==================== clear all; clc; close all; for i=1:2 %depend on # of days name = springf('Day%d.txt',i); a(i).data = load(name); % a is a structure end % ==================== 這樣的話 你就可以在變數視窗 看到變數a的型態是一個 1x2 struct 然後 a(1).data 就會是一個 6x3的double (也就是Day1.txt裡面的內容) a(2).data也是一個 6x3的double (也就是Day2.txt裡面的內容) 所以要使用的時候 就可以直接取值 例如 a(1).data(1,1) 就會是Day1.txt 第一個座標資料點的X a(1).data(1,2) 就會是Day1.txt 第一個座標資料點的Y a(1).data(1,3) 就會是Day1.txt 第一個座標資料點的值(Z) 所以你可以按照這樣的方法把所有東西讀進去然後做運算 按照你的資料 你會有a(1)~a(100) 這100個structure 然後每一個structure裡面 因為有54000個座標(300*180) 因此型態是 54000x3 double 應該這樣就能解決問題了 有問題請指教~~希望對你有幫助 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.222.55 ※ 編輯: wannatalking 來自: 218.168.222.55 (07/03 13:15)

07/03 21:41, , 1F
原PO有拿到一萬p嗎?
07/03 21:41, 1F

07/03 22:58, , 2F
有拿到1萬的話現在應該不是清寒了
07/03 22:58, 2F

07/04 10:38, , 3F
感謝原波 我轉了11120給你 扣完稅後剛好一萬 謝謝
07/04 10:38, 3F

07/04 13:45, , 4F
拿到一萬塊的大紅包了 感謝原PO ;)
07/04 13:45, 4F
文章代碼(AID): #1E3_dPDk (MATLAB)
文章代碼(AID): #1E3_dPDk (MATLAB)