find関数とfor関数をもちいた全データの取得について
Mostra commenti meno recenti
find関数とfor関数を用いて以下のような計算を行いたいです(重心動揺外周面積の計算)
ちなみにデータは重心動揺計のデータでx軸とy軸のデータがあります
theta = mod(atan2d(X,Y)+360,360) ;
X(x軸方向のデータ),Y(y軸方向のデータ)に対して原点からの角度thetaを求めました。
for i = 0 :3: 360 ; %3°ずつずらす
a = find(theta > i & theta < i+3) ; %i<theta<i+3の範囲にあるデータ数を抽出
end
その後上記のようにfind関数を使用して0から3°ずつ範囲を移動(合計120区間=360°/3°)させてその範囲内のデータをaに取得していきたいです。
しかしfindで抽出されるデータ数がそれぞれの区間によって異なるためaに代入することができません。
(ex.0-3°の範囲ではデータ数10個,3-6°の範囲ではデータ数15個→aに代入できない)
このようにデータ数が違うものをforを使用して取得する方法はございますでしょうか。
またもっといい方法がございましたら教えていただいたいです。
1 Commento
kohta
il 9 Nov 2023
現在、私も外周面積の求め方を作成していまして、疑問点についてコメントさせていただきます。 範囲内のデータの個数をaに抽出するように書かれているのですが、その後どのような処理をして外周面積を求めるのでしょうか。 返信いただけたら幸いです。
Risposta accettata
Più risposte (1)
X = rand(10000,1)*2-1; % X: -1.0~1.0の乱数10000個
Y = rand(10000,1)*2-1; % Y: -1.0~1.0の乱数10000個
theta = mod(atan2d(X,Y)+360,360);
[N,edges] = histcounts(theta, 0:3:360)
histogram(theta, 0:3:360);
1 Commento
ryu
il 1 Mar 2022
Categorie
Scopri di più su Geology in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
