問題タブ [matlab-struct]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - MATLAB で構造体フィールドにアクセスできない
MATLAB に構造があります。フィールドにアクセスしようとすると、次のように表示されます。
配列自体を取得するにはどうすればよいですか?
matlab - 可変引数リストを提供する
可変数の入力変数を受け入れる関数があります。問題は、提供する入力引数の数がさまざまであることです。そのため、すべての引数を構造体に格納します。
私の質問は、関数のこの引数を拡張する方法はありますか? これを変換する方法が必要です:
これに:
編集して追加:どうやら私の質問は明確ではありませんでした。を使用して関数を構築する方法を知っていますvarargin
。私の質問は、変更したくない、または変更できない組み込み関数を使用しようとしている場合、どのように変数の方法で引数を提供できますか? つまり、提供する引数の数が前もってわからないので、関数を呼び出すときは、X 個の引数で呼び出す必要があります。事実上、私はこれを変える方法を探しています:
これに:
プログラム的に。ありがとう!
matlab - 構造体に構造体を入れる方法
私はMatlabを使い始めたばかりで、型システム(またはその欠如)を完全に軽蔑しています(または正しく理解していません)。
これが機能しないのはなぜですか? 構造体内の構造体が必要なだけです(再帰関数内)
を作るなど、他のことも試しd=struct('op',1,'kids', struct([]))
ましたが、何もうまくいかないようです....
matlab - Matlab:一意の名前で配列インデックスを参照できますか?
pols
[theta, rho, z] のベクトルを含む列行列があるとします。つまり、そのようなベクトルが 9 つある場合、9x3 の行列になります。それらのいずれかを次のような関数にフィードできるため、それらをそのように配置すると非常に便利ですpol2cart
。
特定のベクトルについて、インデックス 1、2、3 を介してそのコンポーネントを見つけることができます。
ただし、マトリックスが実際には別のより広いマトリックス内にある場合があり、上記が次のようになるように、最初ではなく中間にある可能性があります。
他の誰かがコードを保守しなければならない場合にコードを読みやすくするために、一意の名前でインデックスを参照する方法はありますか? お気に入り
.rho
ここで、rho の値を持つ列にマップすることを以前に定義できました。
行列をセルに変換してから and を使用して配列に変換することに挑戦しましたmat2cell
がcell2struct
、実用的ではないようです。または、構造体の配列を作成することもできますが、実行する能力を失い、pol2cart(pols)
代わりに実行する必要があります
質問を繰り返します: インデックスを一意の名前にマップできますか?
matlab - MATLAB の構造体からいくつかの必要なフィールドを除くすべてを削除する方法はありますか?
そのため、使用されるデータを含むいくつかの構造体があり、1ダースほどのスクリプトです。問題は、スクリプトごとにほんの一握りの変数しか必要なく、残りは無視できることです。大量のデータ (データのギグ) を使用しており、MATLAB でメモリ不足エラーが頻繁に発生するため、構造体から不要なフィールドをすべて削除する必要があります。
現在、不要なフィールドをすべて含むセルがあり、構造体で rmfield を呼び出しています。しかし、構造体のフィールドは頻繁に変更されるため、不要なフィールドのリストを常に更新するのは面倒です。では、MATLAB に、必要なフィールドのみを保持し、他のすべてが何であるかがわからない場合でも、他のすべてを削除するように指示する方法はありますか?
ここに例があります、
- 構造体 1 には、A、B、C、D、E フィールドがあります。
- 構造体 2 には、A、B、C、D、E、F フィールドがあります。
- 構造体 3 には、A、B、C、D、E、F、G、H、I フィールドがあります。
構造体 3 に A から G しかない場合もあります。
A、B、および C フィールドのみを保持し、すべての構造体から他のすべてのデータを削除したいと考えています。
matlab - 空のMatlab構造体Sとすべての要素S(:)の違い
S
私の質問は次のとおりです。とS(:)
if S
is a empty structの違いは何ですか。
この質問のために違いがあると思います: 空の構造体にフィールドを追加する
最小限の実例:
与えられたエラー:
構造体が空の場合、ドット名構造体の割り当ては不正です。構造体に添え字を使用します。
matlab - MATLAB でのマイナスの使用エラー
この行により、次のエラーが発生します。
pb
との定義は次のとおりですpw
。
pos
は 2 x 1 配列です。
matlab - フィールド名が不明な場合に構造体のデータにアクセスする
たとえば、いくつかのレイヤーを持つ構造体としてデータがあります。
data.A.B
アクセスしたいデータはレイヤーにありB
ます。しかし問題は、データの取得元によってフィールド名B
が異なる可能性があることです。したがって、次のように入力することはできません
data.A.B.myData
myData
。struct
名前を見つけるために: を使用できます
fieldnames(data.A)
が、これはあまり役に立ちません。このレベルで発生する可能性のあるすべてのフィールド名のコード セクションを作成する必要があります。そして、それは私が避けようとしているものです。
myData
のフィールド名を知らなくても、私が持っている ( ) データにたどり着く方法はありB
ますか?
matlab - 特定の値より大きい構造体からデータを削除する
構造体があり<1x1 struct>
、値に基づいて構造体のフィールドを編集しようとしています。フィールドが呼び出されGeoDist_Actual
、構造体が呼び出されGeoDist_str
ます。フィールド GeoDist_Actual は です。<262792x1 double>
これは、1.609344e+05 より大きい値を取り除くために使用しようとしていたコードです。
このコードを追加または変更して、目的のように機能させるにはどうすればよいですか? すべての値を 0 に設定することを検討しましたが、GPS 値を取得するには、ここから逆算して逆 Vincenty(球状) 計算を行う必要があり、完全に削除したいと考えています。 if 条件に適合しない値。
質問を絞り込める場合はお知らせください。事前にご協力いただきありがとうございます。
編集:セクションを変更したときに気づいた
為に
実際には何も解決しませんでした。代わりに、構造体「GeoDist_str」内のフィールド「GeoDist_Actual」にアクセスせず、値が 0 のミラー フィールドを作成しただけです。