sph2cart
球面座標から直交座標への変換
説明
例
行列 az、el および r に対応するエントリで定義された球面座標を、直交座標の x、y および z に変換します。これらの点は立方体の 8 つの頂点に対応します。
az = [0.7854 0.7854 -0.7854 -0.7854; 2.3562 2.3562 -2.3562 -2.3562]
az = 2×4
0.7854 0.7854 -0.7854 -0.7854
2.3562 2.3562 -2.3562 -2.3562
el = [0.6155 -0.6155 0.6155 -0.6155; 0.6155 -0.6155 0.6155 -0.6155]
el = 2×4
0.6155 -0.6155 0.6155 -0.6155
0.6155 -0.6155 0.6155 -0.6155
r = 1.7321*ones(2,4)
r = 2×4
1.7321 1.7321 1.7321 1.7321
1.7321 1.7321 1.7321 1.7321
[x,y,z] = sph2cart(az,el,r)
x = 2×4
1.0000 1.0000 1.0000 1.0000
-1.0000 -1.0000 -1.0000 -1.0000
y = 2×4
1.0000 1.0000 -1.0000 -1.0000
1.0000 1.0000 -1.0000 -1.0000
z = 2×4
1.0001 -1.0001 1.0001 -1.0001
1.0001 -1.0001 1.0001 -1.0001
入力引数
方位角。スカラー、ベクトル、行列、または多次元配列として指定します。azimuth は実数でなければなりません。azimuth、elevation、r は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、azimuth が M 行 N 列の行列、elevation がスカラー、r がスカラーまたは 1 行 N 列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。
azimuth は、x-y 平面内の角度 (単位: ラジアン) で、正の x 軸から反時計回りに測定します。
データ型: single | double
仰角。スカラー、ベクトル、行列、または多次元配列として指定します。elevation は実数でなければなりません。azimuth、elevation、r は、同じサイズであるか、互換性のあるサイズでなければなりません。
elevation は x-y 平面からの仰角 (単位: ラジアン) です。
データ型: single | double
半径。スカラー、ベクトル、行列、または多次元配列として指定します。r は実数でなければなりません。azimuth、elevation、r は、同じサイズであるか、互換性のあるサイズでなければなりません。
r の長さは任意の単位にすることができ、出力配列 x、y および z では同じ単位が使用されます。
データ型: single | double
出力引数
直交座標。配列として返されます。
アルゴリズム
球面座標から 3 次元 直交座標へのマッピングは、次のようになります。
x = r .* cos(elevation) .* cos(azimuth) y = r .* cos(elevation) .* sin(azimuth) z = r .* sin(elevation)

拡張機能
sph2cart 関数は tall 配列を完全にサポートしています。詳細については、tall 配列を参照してください。
使用上の注意および制限:
single 型オペランドと double 型オペランドで
sph2cartを使用する場合、生成されたコードでは MATLAB® と同じ結果が得られない可能性があります。single 型と double 型のオペランドをもつ要素単位の二項演算 (MATLAB Coder)を参照してください。
使用上の注意および制限については、「C/C++ コード生成」セクションを参照してください。GPU コード生成にも同様の、使用上の注意および制限が適用されます。
sph2cart 関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
sph2cart 関数は、GPU 配列を完全にサポートします。GPU 上で関数を実行するには、入力データを gpuArray (Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
sph2cart 関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入sph2cart 関数は、複素数入力に対してエラーを返します。逆関数 cart2sph が複素数入力を受け入れないため、この関数は複素数入力を受け入れなくなりました。
複素数入力に対する以前のリリースの動作を維持するには、次の表に示すように、球面座標を直交座標にマッピングする式を使用します。
| 非推奨 (エラー) | 推奨 |
|---|---|
azimuth = 1i; elevation = 2i; r = 1; [x,y,z] = sph2cart(azimuth,elevation,r); | azimuth = 1i; elevation = 2i; r = 1; x = r*cos(elevation)*cos(azimuth); y = r*cos(elevation)*sin(azimuth); z = r*sin(elevation); |
MATLAB Command
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 のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)