Re: [討論] 如何用search term開matlab檔已回收

看板MATLAB作者 (.....)時間13年前 (2010/12/10 15:13), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《iccfish (築夢踏實)》之銘言: : ※ 引述《orgg (.....)》之銘言: : : 我目前寫的方式是 : : filelist = dir('*a*.mat'); : : filenames = {filelist.name}; : : nfiles = length(filenames); : : indata = cell(nfiles,1); : : for K = 1:nfiles : : indata{K} = load(filenames{K}, 'X'); : : end : : 然後我再將所有X都放到同個變數T : ^^^^^^^^^^^^^^^^^^^^^^是否真的有必要這樣做? 剛總算試出來了 我的data因為是matrix的關係 所以不是只要求一個平均值 而且整個matrix的同欄位互相平均 所以可以這樣寫loop %%% for i=1:length(indata) X(i,:)=indata{SS+i,1}.T; end %%% 再來就只要用mean就可以得到matrix的平均值 感謝iccfish大大:p : : T=[indata{1,1}.X;indata{2,1}.X]; : : 再平均T : 如果只有做計算平均這件事的話 : 把個別檔案中的X加總 計算次數 最後再取平均即可 : 以下是我建議的方式 避免了重覆讀取越長越大的'T' : 可以節省佔用的記憶體空間及加速程式執行的速度 : %%%%%%%%%%%%%%%%%%%%%%%%%%%%%沒測過...有問題的話請跟我說 : clc;clear; : ss=0;%加總暫存 : ll=0;%次數暫存 : filelist=dir('a*.mat');%依照原文的敘述 要讀取全部a開頭的檔案 : for ii=1:1:length(filelist) : load(filelist(ii).name);%load完在ws就會出現X : ss=ss+sum(X); : ll=ll+length(X); : clear X; : end : AAAAAVG=ss/ll;%這就是你要的平均值 : %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 130.243.207.232
文章代碼(AID): #1D0TCEbf (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1D0TCEbf (MATLAB)