2
t=find(str.tubetime >= str.time,1);

tubetime が 1 x 1001 要素の行列であると仮定します time が double =0.0012 であると仮定します

コードについて私が理解していることから、この値がチューブタイムで見つかった場所のインデックスを返す同等以上の値のチューブタイムマトリックスの最初の値が見つかります。

私が正しければ、なぜ 244 のインデックス値を取得するのですか?

編集:

現在デバッグモードにあり、システムから読み返しているため、変数が正確であることを再確認しました。ご意見ありがとうございます。何が問題なのか分かりますか?

これは値を示すスクリーンショットです

スクリーンショット

4

3 に答える 3

2

printscreen で値を表示すると、おそらく小数点第 4 位以降が切り捨てられています。元の投稿に対する上記の私のコメントを参照してください。

于 2012-11-21T23:12:14.227 に答える
0

FIND の説明は正しいですが、変数の 1 つが説明どおりではありません。例えば、

t=find([1 1 2 3 4 5 6] >= 3,1)

当然のことながら、4 を返します。

于 2012-11-21T22:50:16.813 に答える
0

構文で1つの要素のみを返すように具体的に要求しました

time = zeros(1,1001);
time(231:250) = 0.0012 % setting an array where indices 231 - 250 are 0.0012 else is zero
find(time>=0.0012)
% gives all indices
find(time>=0.0012,1)
%returns 231 only
find(time>=0.0012,2)
%returns 231,232

さらに、値が短い形式で表示されていないこと、つまり、0.001199 であるのに 0.0012 として表示されていることを確認します。

于 2012-11-21T23:07:04.363 に答える