配列が空になるまで試​行を繰り返すやり方が​分かりません

配列情報を参照して、その配列からデータを取り出し、
配列が空になるまで試行を繰り返す、コードを作りたいのですが
アドバイスが欲しいです。
<イメージ>
まず A という 100000×6 の配列があるとして、
その A から B=A(1,:) の様にして情報を取り出し、A(1,:) を空配列にします。
(この場合は、 A(1,:)=[] で空配列に置き換えました。)
そして、これを A が空になるまで行うようにしたいというものです。

 Risposta accettata

Atsushi Ueno
Atsushi Ueno il 29 Nov 2022

0 voti

A = zeros(100000,6); % まず A という 100000×6 の配列があるとして、
counter = 0;
while(~isempty(A))
B = A(1,:); % その A から B=A(1,:) の様にして情報を取り出し、A(1,:) を空配列にします。
A(1,:) = []; % (この場合は、 A(1,:)=[] で空配列に置き換えました。)
counter = counter + 1;
end % そして、これを A が空になるまで行うようにしたいというものです。
A % A が空になったか確認
A = 0×6 empty double matrix
counter % きっちり100000回行われたか確認
counter = 100000

3 Commenti

Atsushi Ueno
Atsushi Ueno il 29 Nov 2022
> アドバイスが欲しいです
潤沢なメモリを使える時代です。「Aを一つずつ消していく事」が目的ではないはずですし、そのような実装は不要です。「Aの各行にアクセスする事」をより単純な方法で実装出来ます。
A = zeros(100000,6);
for temp = A' % Aを転置して、各列を順に取り出す
B = temp';
end
Atsushi Ueno
Atsushi Ueno il 29 Nov 2022
> アドバイスが欲しいです
MATLABで配列(ベクトルまたは行列と呼ぶ)を扱う場合、for文で各要素にアクセスする必要は必ずしも必要ありません。むしろそうでない場合の方が多く、多くの場面でfor文を取り除く事が出来ます。
Kazumasa Hashiba
Kazumasa Hashiba il 30 Nov 2022
ご回答ありがとうございます。
こちらを参考にして、コードを作成してみます。
丁寧に解説して頂き、誠にありがとうございました。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su 行列および配列 in Centro assistenza e File Exchange

Prodotti

Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!