まず、C++を初めて使い、MatLABでの作業に非常に慣れています。私のコードでは、シーズン中のC++ユーザーが私を撃ってもらいたいと思うかもしれませんが、次のようになります。C++でifループの範囲外にあるベクトルにアクセスする
EDIT:自分のコードスニペットを大きく編集しました。以下は、私が達成しようとしているもののクリーンアップされた、一般化された例です。私はこれを行う場合は
int main()
{
int t = 0;
vector<int> Pad_Ref_Vec; //initialize vector. Required size unknown
for (int n = 0; n <= 10; n++)
{
if (t == 0)
{
vector<int> Pad_Ref_Vec(100); //at this point in the code, i know the size i need this vector to be
for (int i = 0; i < 100; i++)
{
Pad_Ref_Vec[i] = i;
}
}
else
{
//do some operation using the values of Pad_Ref_Vec created in the above
//if statement
}
t++;
}
return 0;
}
、ベクトルPad_Ref_Vecは読みません[0 1 2 3 4 5 ... ...] if文の後に、しかし、最初の初期化の前にした後、(その前のフォームに戻りますfor
ループ)サイズ0のベクトルだけです
私はそれがとても簡単なことがそのような面倒になっていると信じるのは難しいと思っています。建設的なヒントを事前に感謝します。
ヒント:ベクターをコピーし、コピーから再初期化することができます。 –
要するに、すべての後続のループ(t> 0の場合)で、ifループ(t == 0の場合)で作成するベクトルの要素を使用したいと思います。私は、フィーチャの動きを追跡するために、最初のt == 0フレームに対してすべてのt> 0フレームの強度プロファイル(画像にわたるラインの)を自動的に相関させようとしています。私は私の研究室でこれを使用している非常によく開発されたMatlabスクリプトを持っていますが、私はopenCVを使ったリアルタイムアプリケーション用に書き直しています。 –
あなたはチャット・マンです。関連性のある重要な事柄に集中する。 –