問題タブ [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 で数値以外のベクトルを事前に割り当てるにはどうすればよいですか?
私はしばしば次のようなことをしていることに気づきました:
これは機能的ですが、最適ではありません -processedData
ベクターはループ内で成長しています。速度のために事前割り当てを検討する必要があることもmlint
警告しています。
データが のベクトルである場合、次のint8
ようにすることができます。
連結するのではなく、ベクトル スロットを埋めるようにループを変更します。
後で構造体またはオブジェクトを保持できるように、ベクトルを事前に割り当てる方法はありますか?
更新: Azim の回答に触発されて、ループの順序を単純に逆にしました。最後の要素を最初に処理すると、デバッガーが確認するように、最初のヒットでベクター全体の事前割り当てが強制されます。
これにはprocess()
、MATLABprocessedData
が実際のオブジェクトでの最初の書き込みで初期化するため、 によって返されるすべてのオブジェクトが有効な引数なしのコンストラクターを持っている必要があります。
mlint
配列の増加の可能性についてまだ不平を言っていますが、それは逆ループの反復を認識できないためだと思います...
matlab - MATLAB で構造体のプロパティの数をカウントするにはどうすればよいですか?
1 つまたは複数の変数を返す関数がありますが、(関数が成功したかどうかによって) 変数が変化すると、次のようには機能しません。
関数が失敗したときに実際に値が与えられるのは最初の変数だけなので、これはエラーvarargout{2} not definedを返すことがあります。resultA
代わりに、すべての出力を 1 つの変数に入れます。
ただし、変数は構造体のプロパティとして定義されているため、 でアクセスする必要がありoutput.A
ます。これ自体は問題ではありませんが、プロパティの数を数えて、適切な結果が得られたかどうかを判断する必要があります。
私は試してみましたがlength(output)
、役に立たなかったので、誰かがこれを行う賢い方法を持っているなら、私は非常に感謝しています.numel(output)
size(output)
arrays - MATLAB: 構造体の配列から収集する
eg の出力は>>w = whos;
構造体の配列を返します。各構造体の特定のフィールド名からのスカラーを要素とする配列を作成したいと思います。
これを行う最も明白な方法は、私が望むように配列を返しませんが、それぞれが個別に答えます。
私はループでそれを行うことができましたが、もっと良い方法があるかどうか疑問に思っていました.
arrays - MATLABで構造体配列をソートする方法は?
MATLAB でカラー ヒストグラムの交差を使用して画像検索システムを使用しています。この方法では、次のデータが得られます: ヒストグラムの交差距離を表す実数と、画像ファイル名です。これらはデータ型が異なるため、2 つのフィールドを含む構造体配列に格納し、この構造体を .mat ファイルに保存します。ここで、ヒストグラムの交差距離が最大の画像を取得するために、ヒストグラムの交差距離に従ってこの構造を降順に並べ替える必要があります。このデータをソートするために多くの方法を試しましたが、結果はありませんでした。この問題を解決するのを手伝ってくれませんか?
arrays - MATLAB: 構造体配列としてフィールドを持つ構造体配列の全長/サイズを決定する
可変長の構造体配列としてフィールドを含む構造体配列があります。例えば:
's' は構造体 'data' は 's' 内のフィールドであり、構造体配列自体でもあり、
すべてのフィールド s.data.timestamp からタイムスタンプを取得する配列を事前に割り当てたいと考えています。forループを2回使わずにこれを行う方法はありますか? これは私がこれまでに持っているものです:
「s」の長さと「data」の平均長に基づいて必要な長さを過大評価することを考えましたが、各「data」フィールド/サブ構造の実際の長さは大きく異なります。一体全体を過大評価し、後で結果の配列をトリミングする方がよいでしょうか? 私が扱っているデータセットではタイムスタンプをゼロにすることは不可能なので、問題にはなりません。
matlab - 構造体フィールドに動的にアクセスするにはどうすればよいですか?
長さの異なるベクトルである多くのフィールドを持つ構造があります。ループ内のフィールドに順番にアクセスしたいと思います。次のようにgetfieldを試しましたが、MATLABはそれを好みません。これどうやってするの?
配列ではフィールドの長さが異なると問題が発生するため、最初に構造体を使用しています。それに代わるより良い方法はありますか?
arrays - このデータを MATLAB で構造体に編成するにはどうすればよいですか?
たとえば、次のコードは、ランダムに生成されたノードn=5
のプロットを示します。n
これらのノードは構造ではありません (単にプロットされた点) が、すべてのノードに同じようにメッセージを割り当て、ノードの ID と位置を追跡したいsink
と考えています。source
たとえば、node 4
(x,y) 座標がある場合、andも(.3452 , .5463)
割り当てたいと思います。これどうやってするの?node 4
msg
temp_value
コード:
arrays - すべてのノードにランダムエネルギーEを割り当て、2つのノードを比較して最大エネルギーを求め、それらの間の距離を見つける方法は?
gnoviceの助けを借りて、次のコードを取得しましたが、を使用してすべてのノードにエネルギーを(ランダムに)割り当て E=floor(rand(1)*10)
、最大エネルギーとノード間の距離を比較したいと思います。
この質問は、この質問のフォローアップです。
matlab - MATLAB で構造体配列のフィールドの名前を変更するにはどうすればよいですか?
構造体配列が与えられた場合、フィールドの名前を変更するにはどうすればよいですか? たとえば、次の場合、「bar」を「baz」に変更するにはどうすればよいですか。
「最良」がパフォーマンス、明快さ、および一般性のバランスである場合、最良の方法は何ですか?