Re: [問題] Read text numerical data file已回收
%%% Read file and save its content in the cell 'GText'
GText = textread('HFSS_FILE','%s','delimiter','\n');
%%% Parse Grid Information
[t1,t2,t3]=strread(GText{1},'%*s%f %f %f','delimiter','[');
TT = [t1 t2 t3];
(TT(2,:)-TT(1,:))/TT(3,:)+1 %%% NoX, NoY, NoZ
%%% Parse data and manipulate 'No Solution' if necessary
GData = zeros(size(GText,1)-2,9);
for k=3:size(GText,1)
GData(k-2,1:9)=str2num(strrep(GText{k},'No Solution',...
'0.0e00 0.0e00 0.0e00 0.0e00 0.0e00 0.0e00'));
end
數值資料都會存在 GData 裡, 要怎麼處理就端看您的需求了
※ 引述《saltlake (SaltLake)》之銘言:
: 請問怎樣讓 MatLab 讀取 HFSS 輸出的文字格式資料檔如下:
: Grid Output Min: [-0.14 -0.18 -1.43] Max: [0.02 -0.02 -1.19] Grid Size: [0.004
: 0.004 0.004]
: Complex Vector data "<Ex,Ey,Ez>"
: -1.4e-01 -1.8e-01 -1.43e+00 -2.8e+00 8.2e-01 9.5e-01 -2.0e+00 3.3e-01 6.2e-01
: ...
: 前兩列在檔案是純文字 第三列開始是倍精的數字資料
: (x,y,z,ExReal,ExImagine,EyRe,EyIm,EzRe,EzIm)
: 數據資料的比數根據前兩列文字資料計算而得
: NoX = ( 0.02-(-0.14) )/0.04+1
: NoY = ( -0.02-(-0.18) )/0.04+1
: NoZ = ( -1.19-(-1.43) )/0.04+1
: 怎樣把數據讀取之後指定到正確大小的陣列變數是第一個問題
: 第二個問題比較麻煩 有時候檔案有非數值資料比如 infinite 的時候
: HFSS 會指定 No Solution 這個字串代替之 比方說
: -1.4e-01 -1.8e-01 -1.43e+00 No Solution
: 前三個數字因為是座標所以永遠有數字 可是之後一但有沒數字的情況
: 六個數值會通通用 "No Solution" 單一字串表示 這樣夾雜著數據跟字串
: 實在不知怎處理
: 目標是在這種情況下照樣能讀入 MatLab 然後把 "No Solution" 用
: 6 個 0.0e00 取代成為一致的數值資料
: 請問如何達成?
: 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.27.154
推
02/19 10:09, , 1F
02/19 10:09, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章