Excel VBAで複素N×N行列(動的配列でNを決める)のさらに動的配列を作る方法(NポートSパラメータの周波数特性みたいな)
Excel VBAをよく使っているが、最近まで構造体の中に動的配列を入れて、その構造体をさらに動的配列にする方法を知らなかった。
どういう時に使いたいか、というと、NポートのSパラメータ(N×Nの複素行列)の周波数特性を保存するときに、Nも周波数ポイントも動的に確保したい、ようなとき。
どうするかというと、、、まず複素数の構造体を定義する
Public Type Complex x As Double y As Double End Type
その上で、こんな風に構造体の変数に動的配列を使う。
Public Type snp S() As Complex nmax As Integer freq As Double End Type
そして、これの構造体も行列の大きさも確保するには、
Public Sub Init_snp(S() As snp, port_num As Integer, freq_points As Integer)
Dim i As Integer, j As Integer, k As Integer
ReDim S(freq_points)
For k = 1 To freq_points ReDim S(k).S(port_num, port_num) S(k).nmax = port_num Next k
End Sub
のようなサブルーチンを作って呼び出すのが便利。
ようするに、構造体の配列をまずReDimで確保して、その上でその配列要素それぞれに構造体の内部の動的配列をReDimで確保する。
これを作った上で、関数で四則演算や逆行列を作ると、ほとんどNumpyみたいな感じ(いいすぎ、、、)でExcel VBA上で行列演算ができる。
また別途そのライブラリについてはいつか公開するかも。
これを作る前のもうちょっと簡便なライブラリについてはこちら:
Excel VBAで複素数演算(一次方程式・FFT他, Numerical Recipes移植)、フィッティング(非線形含む)、ルンゲクッタ8次(DOP853)などが使えるライブラリ
« 行列の平方根(X^2 =AとなるX)をPython+SciPy(linalg.sqrtm)で計算。 | トップページ | 「人体―神秘への挑戦―」@上野の国立科学博物館を観てきた。ものすごい人出。アインシュタインの脳標本やタモリさんの内臓レゴブロックがあった。 »
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年12月13日 5G Americasが米国の5G普及率99%と発表、ZTEが800G Metro Transport Network (MTN) 標準化主導、NordicのnRF9151モジュールがSkylo認証取得、不完全なViaの電気特性解説、QualcommがRISC-VのVentana Micro Systems買収など(2025.12.13)
- 高周波・RFニュース 2025年12月12日 iFixitが水冷スマホRedMagic 11 Proを分解、Qorvoがロボット向けの技術を紹介、SamsungとKTが6Gに向けAI-RANを実証、NordicがnRF9151向けソフトと開発キット発表、Taoglasが6G向けアンテナ設計解説など(2025.12.12)
- 高周波・RFニュース 2025年12月11日 Qualcommが6Gに向けたOBBB法解説、GSMAが欧州のスペクトラム価格についての報告、Menlo Microが防衛向けに高スタンドオフ保護ミリ波スイッチ発表、京セラとローデ&シュワルツがCES2026でミリ波PAAMデモ、iFIxitのスマホアプリ(2025.12.11)
- 高周波・RFニュース 2025年12月10日 Sivers semiconductorとDigiKeyがパートナーシップ締結、u-bloxが車載Bluetothモジュール発表、TDKが車載パワーインダクタ発表、世界の6GHz Wi-Fi普及状況解説(2025.12.10)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年12月13日 5G Americasが米国の5G普及率99%と発表、ZTEが800G Metro Transport Network (MTN) 標準化主導、NordicのnRF9151モジュールがSkylo認証取得、不完全なViaの電気特性解説、QualcommがRISC-VのVentana Micro Systems買収など(2025.12.13)
- 高周波・RFニュース 2025年12月12日 iFixitが水冷スマホRedMagic 11 Proを分解、Qorvoがロボット向けの技術を紹介、SamsungとKTが6Gに向けAI-RANを実証、NordicがnRF9151向けソフトと開発キット発表、Taoglasが6G向けアンテナ設計解説など(2025.12.12)
- 高周波・RFニュース 2025年12月11日 Qualcommが6Gに向けたOBBB法解説、GSMAが欧州のスペクトラム価格についての報告、Menlo Microが防衛向けに高スタンドオフ保護ミリ波スイッチ発表、京セラとローデ&シュワルツがCES2026でミリ波PAAMデモ、iFIxitのスマホアプリ(2025.12.11)
- Google ColabでAPIキーなしにAIモデル(Gemini 2.5 flashなど)が使えるようになっていた。早速電子レンジの動作原理について聞いてみる。正しく2.45GHzは水分子の共振周波数ではない、と答えられた。(2025.12.10)
- 高周波・RFニュース 2025年12月10日 Sivers semiconductorとDigiKeyがパートナーシップ締結、u-bloxが車載Bluetothモジュール発表、TDKが車載パワーインダクタ発表、世界の6GHz Wi-Fi普及状況解説(2025.12.10)
« 行列の平方根(X^2 =AとなるX)をPython+SciPy(linalg.sqrtm)で計算。 | トップページ | 「人体―神秘への挑戦―」@上野の国立科学博物館を観てきた。ものすごい人出。アインシュタインの脳標本やタモリさんの内臓レゴブロックがあった。 »


コメント