0

を使用してcblas_icamaxいます。float ベクトルz13]を cblas_icamax に渡したい (下記参照)。私のコードには以下が含まれています。

    float z[13] = {0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f ,0.f, 0.f, 0.f, 0.f, 0.f};
//...

    for (i = 0; i < 13; i++) {
        printf("%.4f\n", z[i]);
    }
    int cardIndex = cblas_icamax(13,(float*) z,1);
    NSLog(@"cardIndex: %d", cardIndex);

私も同じ結果でこのコードを試しました。

int cardIndex = cblas_icamax(13,&z,1);

そして、印刷の結果は次のようになり、最大絶対値は位置 10 である 138.1086 ですが、関数cblas_icamaxは 5 を返しています。何が問題なのですか?

-1.2624
74.1524
52.3533
89.9426
28.8639
-7.6203
-30.2820
48.9747
124.8693
29.4351
138.1086
36.2638
-45.0410

cblas_icamax

ベクトル (単精度複素数) 内の絶対値が最大の要素のインデックスを返します。

int cblas_icamax (
   const int N,
   const void *X,
   const int incX
);
4

2 に答える 2

1

私の配列は複素数ではないので、cblas_icamax ではなく cblas_isamax を呼び出すべきでした。

于 2013-01-29T21:05:18.823 に答える