Effacer les filtres
Effacer les filtres

最小二乗法の計算方法​について,配列インデ​ックスに関するエラー​の解決方法.

1 vue (au cours des 30 derniers jours)
正義 金田
正義 金田 le 23 Mai 2023
fx=10^-2:10^-1 % 範囲指定
bx=p(fx)
l1=log10(bx);
l2=log10(fx);
MY=mean(l1); % l1結果の平均
MX=mean(l2); % l2結果の平均
SXY=0; % SXY = 0
for a=1:length(fx)    
SXY=SXY+(l1(a)-MY)*(l2(a)-MX);  %最小二乗法による回帰直線の傾き
end
SXY=SXY/length(fx);
z=SXY/var(l2)
以上のプログラムでエラーが出ます.(配列インデックスは正の整数または logical 値でなければなりません。)
このエラーを解決するにはどのようにすればよいでしょうか.
  3 commentaires
正義 金田
正義 金田 le 24 Mai 2023
Hishida様
コメントありがとうございます.
 仰る通り,範囲指定をしている冒頭のfxで(配列インデックスは正の整数または logical 値でなければなりません)というエラーメッセージが出てきます.
 下記コードのように,範囲を1よりも大きな値にすることでz=〇〇といったデータを得られるのですが,1よりも小さい範囲でのzの値を求めたく思っています.(z=〇〇の形すら出力されません)
ご検討のほど,よろしくお願いいたします.
また不備がありましたら,ご連絡いただければと思います.
fx=10^1:10^2 % 範囲指定
bx=p(fx)
l1=log10(bx);
l2=log10(fx);
MY=mean(l1); % l1結果の平均
MX=mean(l2); % l2結果の平均
SXY=0; % SXY = 0
for a=10:20:length(fx)
SXY=SXY+(l1(a)-MY)*(l2(a)-MX); %最小二乗法による回帰直線の傾き
end
SXY=SXY/length(fx);
z=SXY/var(l2)
Hiroyuki Hishida
Hiroyuki Hishida le 6 Juin 2023
Modifié(e) : Hiroyuki Hishida le 6 Juin 2023
すみません、通知がされず見落としておりました。fxを1より小さい値で刻まれたいのでしたら、例えばこういう表現が可能ですが、いかがでしょうか?
fx = 0.001 : 0.001 : 1.0;
これは、0.001から1.0まで、0.001ずつ値を増やしております

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur ループと条件付きステートメント dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!