VBAで総当たりで相関を出したいです。
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2014年12月17日(水)07時30分 From: ふむふむ | 返事 削除 変更 |
コードが示されていないのですが、 >(x,yそれぞれは十分数あるが、x(n)に対応するy(n)が少ない) Public Sub Calc() Dim arg1 As Variant Dim arg2 As Variant arg1 = Array(1, 2, 3) arg2 = Array(4, 5) Dim result As Double result = Application.WorksheetFunction.Correl(arg1, arg2) End Sub これだと1004エラーでも「Correlプロパティを取得できない」メッセージなので、原因は他にあるように思います。 |
Message#1 2014年12月17日(水)07時29分 From: VBA迷い人 | 返事 削除 変更 |
VBAで総当たりで相関を出したいです。 correl関数を用いようと思うのですが、一部、対応するデータ数が少ないためか、エラーが出てしまいます。 (x,yそれぞれは十分数あるが、x(n)に対応するy(n)が少ない) On Error Goto でも解決できません。 1004:「アプリケーション定義またはオブジェクト定義のエラーです。」 と出ますが、そこまでの他の計算結果もでているのでよくわかりません。 何か分かる方いらっしゃるでしょうか。 宜しくお願い致します。 経時変化から各データ同士の相関を見ようとしています。 For x = 2 To xmax For y = 2 To ymax On Error GoTo myError4 Cells(1, 1) = "b" If x < y Then GoTo 1000 With Worksheets("(シート)") Set ds1(x) = .Range(.Cells(2, x), .Cells(ymax, x)) Set ds2(y) = .Range(.Cells(2, y), .Cells(ymax, y)) End With Cells(1, 1) = "a" Cells(3, 5) = x Cells(3, 6) = y corr = Application.WorksheetFunction.Correl(ds1(x), ds2(y)) Cells(1, 1) = "c" corr = corr * corr Cells(x, y) = corr If corr > 0.9 Then n = n + 1 Cells(2, 4) = n On Error GoTo 0 myError4: Cells(1, 1) = "e" Next 1000 Next (1,1)にaと表記された状態で止まってしまいます。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降