MATLAB ヘルプ センター
自然対数
Y = log(X)
Y = log(X) は、配列 X の各要素の自然対数 ln(x) を返します。
Y
X
関数 log の定義域には負の数と複素数が含まれており、意図せず使用すると予期しない結果になることがあります。負の数と複素数 z = u + i*w の場合、複素数の対数 log(z) は次を返します。
log
z = u + i*w
log(z)
log(abs(z)) + 1i*angle(z)
負の数および複素数の場合に、複素数の結果を返すのではなくエラー メッセージを返すようにするには、reallog を代わりに使用します。
reallog
例
すべて折りたたむ
-1 の自然対数が iπ であることを示します。
log(-1)
ans = 0.0000 + 3.1416i
入力配列。スカラー、ベクトル、行列、多次元配列、table または timetable として指定します。
データ型: single | double | table | timetable 複素数のサポート: あり
single
double
table
timetable
対数値。スカラー、ベクトル、行列、多次元配列、table、または timetable として返されます。
(-0, Inf) の区間内の X の正の実数値の場合は、Y の区間は (-Inf,Inf) になります。X の複素数と負の実数の場合は、Y は複素数になります。Y のデータ型は X のデータ型と同じです。
0
Inf
-Inf
すべて展開する
log 関数は tall 配列を完全にサポートしています。詳細については、tall 配列を参照してください。
使用上の注意および制限:
入力値 x が実数の場合に、出力を複素数にしようとすると、シミュレーションはエラーにより終了します。複素数の結果を得るには、complex(x) を渡して入力値を複素数にします。
x
complex(x)
backgroundPool
ThreadPool
log 関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
log 関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
GPU で実行される関数の出力が複素数になる可能性がある場合は、入力引数を明示的に複素数として指定しなければなりません。詳細については、GPU 上での複素数の処理 (Parallel Computing Toolbox)を参照してください。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
log 関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
log 関数で、自然対数を倍精度で計算するときのパフォーマンスが向上しています。たとえば、次のコードでは、0 ~ 1000 の区間内にある 100,000,000 個の実数の自然対数を計算しています。以前のリリースと比較して、このコードは約 2.8 倍速くなっています。
function t = timingLog x = rand(1,1e8)*1000; y = @() log(x); t = timeit(y); end
おおよその実行時間は以下のとおりです。
R2025a: 0.79 秒
R2026a: 0.28 秒
このコードの時間測定では、Windows® 11、AMD EPYC™ 74F3 24 コア プロセッサ (3.19 GHz) 搭載のテスト システムで、timingLog 関数を呼び出しました。
timingLog
このパフォーマンスの向上はコードの変更によるものです。変更後のコードは倍精度の丸め動作も少し異なり、全般的により正確な結果が得られます。たとえば、次のコードでは、小数点以下 15 桁の long 型科学表記法において、より正確な結果が返されるようになりました。
format longE Y = log(1.63340913276288)
Y = 4.906693231856701e-01
以前は、同じコードで次の結果が返されていました。
Y = 4.906693231856700e-01
1.63340913276288 などの 10 進数の入力について、MATLAB® では表現可能な最も近い倍精度 2 進数値に変換されることに注意してください。これは、元の 10 進数の入力と厳密に等しくなるとは限りません。そのため、log 関数の倍精度の精度は向上していますが、入力の正確な表現を使用して実行された計算とは結果が異なることがあります。
1.63340913276288
関数 log は、table または timetable 内のすべての変数に対して、それらの変数にアクセスするためのインデックス付けを行うことなく計算できます。すべての変数のデータ型で計算がサポートされている必要があります。詳細については、table および timetable での直接計算を参照してください。
log1p | log2 | log10 | exp | logm | reallog | loglog | semilogx | semilogy
log1p
log2
log10
exp
logm
loglog
semilogx
semilogy
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ