米MathWorks社開発の数値計算用ソフトウェア。日本国内での販売・サポートはサイバネットシステム社が行っている。 MATLABという名称は、MATrix LABoratoryを略したものから来ている。 行列計算やグラフ化等、豊富なライブラリを有している。 プログラムはインタプリタ方式であり、CやFortranなどと比較して手軽に数値解析を行うことが可能である。
MRI画像をRescale slope, Scale factorで補正する。 ↑はPHILIPSの場合ちなみにこれはSignal intensityをそのまま使うときようのものであって、SNR、CNRなど”比”をとるときは必要ない。 〜 dcm_path = "DICOMデータのpathを書く" dcm_data = dicomread(dcm_path); dcm_data = double(dcm_data); info = dicominfo(dcm_path); RescaleSlope = info.RescaleSlope; Scale_factor = info.Private…
DICOM のタグを任意に編集して保存する。今回は、すべてのタグを一度からにして、任意のタグの値を編集する。 % DICOMファイルからinfoを読み込む dcm_path = "パスを書く"; info = dicominfo(dcm_path) % タグの数を得る names=fieldnames(info) length(names) %タグを一旦空にする emp_info = info for x= 1:length(names) emp_info = setfield(emp_info,names{x},""); end % タグを編集する ed_info = emp_info ed…
DICOMデータをCSVへ一括変換する。 MRIのT1 mapなどの処理に有用。 % dcm 2 csv main_fd = "DICOMデータが入っているフォルダを指定"; imgs = dir(main_fd); imgs = imgs(3:end); csv_fd = "CSVファイルを保存するフォルダを指定"; for x = 1:length(imgs) img_path = fullfile(main_fd, imgs(x).name); img = dicomread(img_path); nm = split(imgs(x).name,"."); csv_path = full…
1. はじめに NeRF (Neural Radiance Field) とは、複雑なシーンに対して、任意の視点からの3次元的なシーンを画像から再構成する技術です。以下の動画にあるように、物体に対して、様々な角度から見たときのシーンをキレイに再現することができます。反射に関しても、それぞれの角度から見たときの見え方が反映されており、角度によって同じ場所でも微妙に違う反射特性を見て取ることができます。この手法を利用して、例えば、地点AとBで画像を取得した場合、その中間地点の任意の角度から対象物体を見たときのシーンを生成可能です。 この記事では、このNeRFと呼ばれる技術と、それを実行するにあたっ…
はじめに MATLABとは MATLAB EXPO 2023 JAPANの概要 MATLAB EXPOの雰囲気 講演会の内容 まとめ はじめに MathWorksが主催するMATLAB EXPO 2023 JAPANに参加してきました。このイベントでは、MATLABの最新の技術や活用事例が紹介され、MATLABの可能性を感じることができました。今回は、会場の雰囲気や聴講した基調講演の内容についてお伝えします。 www.matlabexpo.com MATLAB EXPO MATLABとは MATLABは、MathWorksというアメリカの企業が提供している技術計算言語環境です。MATLABを利…
GANや超解像で作成した画像データ(JPEG, PNG)を元のDICOMデータの情報を付加してDICOM変換する。 % 元のDICOMデータのlist作成 dcm_fd = フォルダ名; dcm_fls = dir(dcm_fd); dcm_fls = dcm_fls(3:end); dcm_fls = {dcm_fls.name}; % JPEGデータのlist作成 (今回は超解像をやったことにてHR (high reso) としている) HR_fd = フォルダ名; HR_fls = dir(HR_fd); HR_fls = HR_fls(3:end); HR_fls = {HR_fls.…
ファルダ内に隠しファイルがあるので、3つ目以降を得ることで隠しファイルを削除するのがコツ 〜 fd_path = "OOOOOOO"; fls = dir(fd_path); fls = fls(3:end); for x = 1:length(fls) fls_nm{x} = {fls(x).name} ; end 〜
概要 cのお勉強 c++ではない C11をターゲットにする C17ほどの新環境ではない 本格的に開始して3日目の記事です matlabで書けるやつをcに移行したい オブジェクト指向の設計がちょっとできるようになった 試しにcodegenを使ってみたけど納得できなかった… どうしても組み込み開発にオブジェクト指向を使ってみたい… 簡単なルーチンのコードならぶっちゃけ引き継ぎで確保している handle classがとても便利だよね,ぜひともあれをやりたい 結果,オレオレ自己参照構造体にオレオレ関数を設定する方針に至る MBP-2016-15(Intel Core i7), macOS Monte…
本記事は MATLAB/Simulink Advent Calendar 2022のカレンダー | Advent Calendar 2022 - Qiita の10日目の記事になります. はじめに MATLAB/Simulinkでシミュレーションをすることはよくあります. その際,パラメータを変化させて結果の比較をすることがよくあると思いますが,そのパラメータはどのように管理しているでしょうか? 本記事は,MATLABのtableを使用して,パラメータを変えた試験ケースを管理することで,諸々楽になるかもしれないという記事です. 流れとしては,MATLABのTABLEで試験ケースを作成→MATL…
はじめに matlabからWSL上のROSに接続して操作する方法について記載する. gazeboの中のTurtleBot3を操作し,データをmatlab側に読み込む. 環境 windows側 windows10 or windows11 matlab2022b ROS ToolBox wsl2側 Ubuntu20.04 ROS Noetic 前提 wsl2内にROSとTurtleBot3の構築は済んでいるものとする. 導入の仕方は下記参照: tagebuchvonspargel.hatenablog.com 手順 wslとmatlabの接続は下記を参考に行うが,そのままするとネットワーク周りで…
はじめに 私が調査した内容を備忘録としてまとめたもので,実際に全てを試したわけではありません. なので,間違えている,または効果のない内容が含まれている可能性があります. それを踏まえて参考として読んでいただけると助かります. 高速化方法 ヤコビ・ヘッセ行列の計算 最適化の中で用いられる目的関数・制約の勾配(ヤコビ行列)の推定に使用されるのは有限差分であるため,勾配の計算は正確ではありません. 多くの場合,解の更新の回数が増え,計算時間が長くなります. そこで,ヤコビ行列を戻り値とする関数を用意することで,より高速に計算することができます(詳細). (ただ,勾配の計算が複雑な場合は,有限差分の…
kogakudanshi.hatenablog.jp 前回求めた倒立振子の運動方程式を組み込んだシミュレーターを作ります。 育ちが悪くてMatlabがちゃんと使えないのでProcessingで可視化します。 オイラー法 シンプルなやつです。 みたいなのをそのまま実装します。 float x = -20; float x_ = 5; float t = PI / 180 * 20; float t_ = -PI / 180 * 51; final float m = 2; final float M = 1; final float l = 4; final float g = 9.8; flo…
mbd-automobile.com www.cct-inc.co.jp 用語 MBD (Model Based Development) : モデルベース開発。簡単に言うとバーチャルシミュレーションによって開発の効率化を実現。MATLAB、Simulinkなど MILS (Model In the Loop Simulation) SILS (Software In the Loop Simulation) HILS (Hardware In the Loop Simulation)
ごあいさつ どうもおはこんばんにちは。あかり描像です。先日このブログの総 PV 数が 1 万を超えました。 わたしの PV 数たまに 1 日 30 PVs を超える日も出てきました。これも皆様方のお陰です。ありがとうございます。 これからも細々と続けていきます所存でありますさかい、よろしくお願い申し上げます。
前回、モータのモデルを作ってからシステム同定について文献を漁ったりいろんな方のブログなどを参考にさせていただいて、だいぶ理解が深まった。(と思う。) 一応入力の信号の選定やシステム同定のやり方、マイコンに書き込むプログラムは作ってみた。 しかしモータが届かないのでこれ以上先には進めない状態になってしまった。 そこで、最終目標であった「倒立振子モデル自体のシステム同定」を行うための準備を進めていこうと思う。
Common Lispで逆行列の計算をするための準備をしてきました。 行列式の計算(Common Lisp) - 丸井綜研 LU分解(Common Lisp) - 丸井綜研 LUP分解(Common Lisp) - 丸井綜研 連立方程式を解く(Common Lisp) - 丸井綜研 今日はついに逆行列の計算です。とは言っても、効率の良い計算をするわけではなく、単純な𝑂(𝑛³)での実装です。しかもsolve関数を呼ぶたびにLUP分解が実行されるのでかなり効率が悪いです。でも、まずは効率のことは無視して進めましょう。 前回までの記事で、LUP分解を使って連立方程式を解けるようになりました。連立方程…
衛星や航空機•ヘリコプター等からのリモートセンシングでは、光学的には地表面、電波等では地中•水中の、立体画像を作成する為の情報を得る事が出来ます。 リモートセンシングと放射伝達 – JAXA 第一宇宙技術部門 Earth-graphy リモートセンシング - 環境技術解説|環境展望台:国立環境研究所 環境情報メディア 地形をとらえやすい立体画像 | 一般財団法人リモート・センシング技術センター また、同じ技術による情報受信から、植生•生態環境の調査、作物生育状態の確認を行う事も出来ます。リモートバイタルセンシングですね。 「ドローン+センシング技術が農業の未来をつくる」(視点・論点) NHK解…
実現したいこと ダウンロードURL mファイルソースコード 実行結果 併せて確認推奨の過去記事 実現したいこと ボード線図の位相表示開始を0度からにしたい参考URL: bode関数で描いたボード線図について、位相の値を0°近傍からプロットするにはどうすればよいですか? - MATLAB Answers - MATLAB Central ダウンロードURL ボード線図_位相表示0度に設定 - Google ドライブ ※上記プログラムの利用で生じたトラブルは一切の責任を負いかねます。 mファイルソースコード 下記画像クリック ⇒ コピー可能なソースコード表示 実行結果 併せて確認推奨の過去記事 f…
(1)野球 自分ではやっていないが、クライマックスシリーズが終わり、阪神対オリックスの関西対決が実現した。 (2)音楽 トラックの日というイベントでRebootの弾き語りをやったが、緊張でミスが多かった youtu.be アコギの神様と言われるトミーエマニュエルはいろんなところでライブしたからこそ神様と呼ばれるほどの技術を身につけたと聞き、これからは外で練習しようかなと思った。 また、歌もちょっと微妙だったのでボイトレしようかと思った。声量を増やすこととビブラートをできるようにすることが目標。 歌唱力、点数向上でカラオケがもっと好きになる自己ボイトレの教科書 作者:神田宗季 Amazon この…
今や、線形代数の応用分野は理系だけではなく、おそらくコンピュータの使用される分野全てと考えていいだろう。メイン分野は以下だ。 ・構造解析 ・流体解析 ・制御系 ・暗号理論 教育機関で特に数学系以外なら、ベクトル、行列、行列式、連立一次方程式、固有値までの説明は受けるはずだ。しかもSarrusの方法が使用できる2次、3次までがメインだ。4次以上、つまり一般化に近づくと、Sarrusの方法が使用できない事や、様々な定理や公式が見辛くなって理解を妨げる事、計算コストを抑えるために特有の数値計算手法を使用せざるを得ない事が、その理由と考えられる。エッセンスだけなら3次まででいいだろう、て考えてしまうの…
gigazine.net ⇧ amazing... 気になるのは、 ホースラディッシュ(英: horseradish、学名: Armoracia rusticana)は、アブラナ科の耐寒性の多年草。和名はセイヨウワサビ(西洋山葵)。 ホースラディッシュ - Wikipedia ⇧「ホースラディッシュ」の和名が「セイヨウワサビ」なんだけど、「わさび」と同様の効果は無いのかね? ソースコードのステップ数を得るのはclocを使うのが良さ気らしい Eclipseとかで開発することが多かったので、 github.com ⇧ を使ってたことがあったのですが、今回は、シェルスクリプトのステップ数を取得したい…
先日以下の記事にしたように、LUP分解をすると正則行列𝐴に対して𝑃𝐴 = 𝐿𝑈という分解ができるのでした。𝐿は下三角行列、𝑈は上三角行列、𝑃は並べ替えの情報が入っています。 marui.hatenablog.com これを使って連立方程式𝐴𝑥 = 𝑏を解くプログラムを作ります。LU分解のときにお世話になったサイトをふたたび参考にします。 www.hello-statisticians.com このページの「𝑈𝑥 = 𝑦を𝑥に関して解く」の最後の式(𝑖 < 𝑛の時の𝑥𝑖の計算)の分母にある𝑢𝑖,𝑛は𝑢𝑖,𝑖じゃないといけないので、下記コードではそのようにしています。(コメントが受け付けられていな…
【2023-11-09:入力行列を書き換えながら処理をするようになっていたので、呼び出し元でも行列の内容が書き変わってしまっていました。複製を作って作業するように修正しました。】 昨日LU分解のコードを掲載しましたが、単純なアルゴリズムなので、𝑎₁,₁要素がゼロだとうまく動かないという問題がありました。 marui.hatenablog.com それを解消するのがLUP分解です。各列を見ていって、対角要素の絶対値が最大になるように行の入れ替えを行ってからLU分解を行うことで、ゼロ除算を防ぐだけでなく小さい数での除算が少なくなって計算結果が安定するというものです。結果として、正則行列𝐴に対して𝑃…
10月29日(日)にShibuya.lispのもくもく会がありました。残念ながら雑談の途中で中座しないといけなくなってしまいましたが、とても楽しかったです。この日のもくもく会の目標は「逆行列を計算できるようにすること」でした。実際は途中までしかできなかったのですが、そこまでをまとめておきます。 さて、逆行列を計算する方法をChatGPT 3.5に「正則行列の逆行列を計算する方法を列挙してください。方法の詳細には立ち入らないで大丈夫です。」と聞いてみたところ、以下の5つが回答されました。 行列式と余因子行列を用いる方法 ガウス・ジョルダン法を用いる方法 LU分解を用いる方法 行列の特異値分解(S…
はじめに スケーリングとは 代表的なスケーリング手法 正規化 標準化 Box-Cox変換によるスケーリング ダム流入量データのスケーリング 使用データ MATLABサンプルコード 各スケーリング結果の比較 まとめ はじめに AIモデルを構築する際、データの前処理は非常に重要です。 今回は、AIの前処理の一部であるスケーリング手法に焦点を当て、BoX-CoX変換について詳しく説明します。 BoX-CoX変換はあまり一般的に知られていないかもしれませんが、非常に有用なスケーリング手法です。 私はMATLABを使用してデータ分析をすることが多いため、Box-Cox変換のコードも提供します。 AIの基…