[解決済み] MATLABで動的配列を作成する方法
質問
この配列の説明
- 10次元で、10のクラスターを表す。
- 各次元の長さは固定ではないので、最初は0であるべきである。
- クラスタリング後、1つの座標(x,y)が対応するクラスタに割り振られます。
例
(1,1)がクラスタ10に属し、(2,2)がクラスタ9に属し、座標の列が与えられた場合
(1,1) (1,1) (1,1) (1,1) (1,1) (2,2)
では
A(1)
から
A(8)
は要素がないのに対して
A(9)
は、値を持つ1つの要素を持っています。
(2,2)
と
A(10)
は、値を持つ5つの要素
(1,1)
.
私はセル配列を使用しようとしましたが、私は1つを得る"一種の"、以下は私のコードです。
A = cell(10,0)
%create empty cell array
A(10,end+1) = {[1,1]}
%assign (1,1) to cluster 10
そこで今度は
A
があります。
次に、(2,2) があるとすると、それは次のように割り当てられます。
A(9)
A(9,end) = {[2,2]}
見た目は問題ないのですが、次に(1,1)を
A(10)
を再び使用します。
A(10,end) = {[1,1]}
そうすると、長さはそのままで
A(1)
から
A(8)
は空ではありません!
質問は、動的な配列を作成するのに役立つ他の方法はないのでしょうか?
どのように解決するのですか?
MATLABでは、複数の座標を1つの配列に格納することが多く、次のようになります。
p(3,:)
が3点目です。[この理由の一つは、各配列にはオーバーヘッドがあり、セル配列などの中に個々の配列として多くの点を格納することはメモリの浪費につながるため、この方法がデータを格納する上ではるかに効率的であるためです]。
その方法で、各クラスタ内の座標を保存するのがいいと思います。例えば
A = cell(10,1); % 10 clusters, we won't change the size of A
A{10}(end+1,:) = [1,1];
A{9}(end+1,:) = [2,2];
A{10}(end+1,:) = [1,1];
さて、中身はどうなっているのでしょう。
A
:
>> A{1}
ans =
[]
>> A{9}
ans =
2 2
>> A{10}
ans =
1 1
1 1
なお
A{10}
はセルの内容(この場合、数値配列)であるのに対し
A(10)
は、セルが1つだけのセル配列です。
A{10}(1,:)
はクラスタ10の最初の座標です。
size(A{10},1)
はクラスタ10に含まれる座標の数です。
A{10}(end+1,:) = [1,1]
は、要素を追加する方法の一つです。
end+1
は存在しない場所なので、そこに新しいデータが代入されると配列が拡張されます。別の方法として
A{10} = [A{10} ; 1,1]
. この2つの方法が同等かどうかは分かりませんが。ベクターの場合、あるいは列を追加する場合には
end+1
の方がはるかに効率的なので、私はどんな場合でも必ずこの方法を推奨しています。
関連
-
[解決済み] jsonに複数の値を1つのキーで格納する
-
[解決済み] Twigでの出力配列
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] オブジェクトが配列であるかどうかを確認するにはどうすればよいですか?[重複]。
-
[解決済み] JavaScriptで配列を空にするにはどうしたらいいですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】配列に何かを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】アセンブリ言語での配列のバブルソート
-
[解決済み] Angular 2のTypeScriptで配列にフィルタをかけるには?
-
[解決済み] Luaで2次元配列を作成するには?
-
[解決済み] MIPSの2Dアレイ
-
[解決済み] Scala:Arrayに要素を追加する最良の方法は何ですか?
-
[解決済み] jsonに複数の値を1つのキーで格納する
-
[解決済み] int (*p)[10]=s と int (*o)[5]=&s の違いは何ですか?
-
[解決済み] MASMアセンブリの配列 (非常に混乱している初級者)
-
[解決済み] MATLABのnumel関数とlength関数の違いについて
-
[解決済み] SwiftでUInt8バイト配列を文字列に変換する方法