| 查看: 2159 | 回復(fù): 10 | |||
mei3014金蟲 (正式寫手)
木有頭屑
|
[求助]
matlab txt文件數(shù)據(jù)提取轉(zhuǎn)換
|
|
假設(shè)我有一個1.txt的數(shù)據(jù)文本,里面有這么一段: 3996 3.9950000000e+003 -1.46929e-005 1.39538e-005 3997 3.9960000000e+003 -1.65129e-005 6.65343e-005 3998 3.9970000000e+003 4.05215e-005 -2.06176e-004 3999 3.9980000000e+003 -2.65027e-005 1.81863e-004 4000 3.9990000000e+003 1.12635e-001 2.53541e-001 4001 4.0000000000e+003 -2.25194e-001 -5.07143e-001 4002 4.0010000000e+003 1.12585e-001 2.53582e-001 4003 4.0020000000e+003 -1.29527e-004 -7.78130e-005 4004 4.0030000000e+003 1.62932e-004 7.54291e-005 我需要的數(shù)據(jù)是 4001 4.0000000000e+003 -2.25194e-001 -5.07143e-001 換言之就是4.0000000000e+003這個頻率下的-2.25194e-001-5.07143e-001i 這個聲壓數(shù)據(jù) 然后重復(fù)剛才的過程,一個txt文件里需要提取60個4.0000000000e+003這個頻率下對應(yīng)的聲壓數(shù)據(jù)。再把這60個復(fù)數(shù)數(shù)據(jù)導(dǎo)入另一個txt文本,每個復(fù)數(shù)數(shù)據(jù)之間留個空格,那么就大功告成了。 請問各位大神,這matlab程序該怎么編寫才能一步完成以上操作,誰幫下忙,非常感謝,如果做不到一步完成,提供些思路也可以。可以追加分。謝謝! |
matlab |

金蟲 (正式寫手)
木有頭屑
|
X1——X2 50cm.txt(56.41MB) http://kuai.xunlei.com/d/GOYWKZJKEDUD?p=130497 這是原始數(shù)據(jù)文件,內(nèi)容較多 |

木蟲 (職業(yè)作家)
中國特色
|
[a(:,1),a(:,2),a(:,3),a(:,4)]=textread('ddt.txt'); %讀入數(shù)據(jù),假設(shè)你的數(shù)據(jù)文件名為ddt.txt ind=find(a(:,1)==4000); b=a(ind, ; % 此時已把ddt.txt中所有含4000的行都提取出來單獨組成了矩陣b寫到文件里,應(yīng)該很容易了吧,自己弄吧 |

木蟲 (職業(yè)作家)
中國特色

金蟲 (正式寫手)
木有頭屑
|
Header Size: 79 Pulse Version: 80 Running Pulse Version: PULSE LabShop v. 15.1.0.15 - 2010-11-08 Decimal Symbol: . Date Format: 'yyyy-MM-dd' Time Format: 'HH:mm:ss.mmm' Data Type: Complex Slice: False Z-Axis type: Linear Z-Axis size: 1 Z-Axis unit: Z-Axis first value: 0.0000000000e+000 Z-Axis delta: 1.0000000000e+000 X-Axis type: Linear X-Axis size: 6401 X-Axis unit: Hz X-Axis first value: 0.0000000000e+000 X-Axis delta: 1.0000000000e+000 AmplitudeUnit: Pa Analyzer: FFT_Spectrum_Averaging AnalyzerName: FFT Analyzer Bipolar: True CenterFrequency: 3.2000000000e+003 dBReference: 2.0000000000e-005 Domain: 1 Function: Fourier Spectrum InputRange: 8.5304914740e+002 MultiBufferName: Input NBW: 1.5000000000e+000 OverlapFailed: False Power: False PowerUnit: Pa^2 Ratio: False RecordLength: 1.0000000000e+000 Ref_Signal: Signal 1 Signal: Signal 1 SignalUnit: Pa Title: Fourier Spectrum(Signal 1) - Input Title1: Working : Input : Input : FFT Analyzer Weight: 0 ZoomOn: False TemplateName: Working MeasurementName: Input MeasurementSlice: False EnvelopeOn: False Z-index: 1 Date: '2012-11-01' Time: '14:25:27.624' Relative time: 0.00000e+000 Z-axis: 0.0000000000e+000 1 0.0000000000e+000 -2.69714e-005 0.00000e+000 程序比較復(fù)雜,在一樓所示程序內(nèi)容這段上面還有一段是不規(guī)則的數(shù)據(jù),如上所示,而且txt文本中內(nèi)容很多,txt文本大小就有56M多了,可想而知。 另外我用你的程序運(yùn)行語句: [a(:,1),a(:,2),a(:,3),a(:,4)]=textread('X1_X2_45cm.txt'); %讀入數(shù)據(jù),假設(shè)你的數(shù)據(jù)文件名為ddt.txt。 matlab運(yùn)行不下去了,提示錯誤為: ??? Error using ==> dataread Trouble reading number from file (row 1, field 1) ==> Header Size: 79 \n Error in ==> textread at 176 [varargout{1:nlhs}]=dataread('file',varargin{:}); 所以你編的程序不能應(yīng)用于我的含有復(fù)雜內(nèi)容的txt文件數(shù)據(jù)提取,只適合含有規(guī)則數(shù)據(jù)內(nèi)容的數(shù)據(jù)提取,不過還是謝謝你的回答! |

鐵蟲 (初入文壇)
金蟲 (正式寫手)
木有頭屑

榮譽(yù)版主 (著名寫手)
彩色掛圖
![]() |
專家經(jīng)驗: +2 |

金蟲 (小有名氣)
|
textread函數(shù)的功能是十分強(qiáng)大的,如果沒記錯的話(具體用法請參考matlab幫助文件) [data1,data2,data3,data4]=textread('X1_X2_45cm.txt','%n%n%n%n',N1,'headerlines',N2); 就可以跳過開頭的N2行,而N1表示重復(fù)該讀取動作N1次, 這樣差不多就可以解決你的文件格式問題了! |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 284求調(diào)劑 +10 | Zhao anqi 2026-03-22 | 10/500 |
|
|---|---|---|---|---|
|
[考研] 335求調(diào)劑 +4 | yuyu宇 2026-03-23 | 5/250 |
|
|
[考研] 材料調(diào)劑 +3 | 匹克i 2026-03-23 | 3/150 |
|
|
[考研] 一志愿國科過程所081700,274求調(diào)劑 +3 | 三水研0水立方 2026-03-23 | 3/150 |
|
|
[考研] 生物學(xué)學(xué)碩求調(diào)劑 +4 | 小羊睡著了? 2026-03-23 | 4/200 |
|
|
[考研] 一志愿南京理工大學(xué)085701資源與環(huán)境302分求調(diào)劑 +5 | 葵梓衛(wèi)隊 2026-03-18 | 7/350 |
|
|
[考研] 工科材料085601 279求調(diào)劑 +8 | 困于星晨 2026-03-17 | 10/500 |
|
|
[考研] 276求調(diào)劑。有半年電池和半年高分子實習(xí)經(jīng)歷 +8 | 材料學(xué)257求調(diào)劑 2026-03-23 | 9/450 |
|
|
[考研] 317求調(diào)劑 +12 | 申子申申 2026-03-19 | 18/900 |
|
|
[考研] 280分求調(diào)劑 一志愿085802 +4 | PUMPT 2026-03-22 | 7/350 |
|
|
[考研] 307求調(diào)劑 +11 | 冷笙123 2026-03-17 | 11/550 |
|
|
[考研] 289材料與化工(085600)B區(qū)求調(diào)劑 +3 | 這么名字咋樣 2026-03-22 | 4/200 |
|
|
[考研] 305分求調(diào)劑(食品工程) +4 | Sxy112 2026-03-21 | 6/300 |
|
|
[考研]
|
Grand777 2026-03-21 | 3/150 |
|
|
[考研] 材料與化工(0856)304求B區(qū)調(diào)劑 +3 | 邱gl 2026-03-20 | 7/350 |
|
|
[考研] 296求調(diào)劑 +4 | www_q 2026-03-20 | 4/200 |
|
|
[考研] 299求調(diào)劑 +5 | shxchem 2026-03-20 | 7/350 |
|
|
[考研] 0805材料320求調(diào)劑 +3 | 深海物語 2026-03-20 | 3/150 |
|
|
[考研] 279求調(diào)劑 +5 | 紅衣隱官 2026-03-21 | 5/250 |
|
|
[考研] 求調(diào)劑 +3 | Ma_xt 2026-03-17 | 3/150 |
|