最適化中の単一アレイ計算 - ページ 8 12345678 新しいコメント forexman77 2016.11.06 13:49 #71 forexman77:ほとんど授業ばかりで、私にとっては暗黒の森のようなものです。しかし、ある思いが湧いてきました。日付と数字を別々に配列にする。ただ、ソート後の日付があるインデックス番号を取得する方法、つまり、2次元にあるiを取得する方法は?datetime m[215][1];double d[215][2]; m[0][i]=Dat_DtTm; d[i][0]=f1; d[i][1]=f2;を行いました。datetime m1[215];datetime m2[215];double d[215][4]; m1[i]=Dat_DtTm; m2[i]=Dat_DtTm; d[i][0]=f1; d[i][1]=0.0; d[i][2]=f2; d[i][3]=0.0;ArraySort(m1,WHOLE_ARRAY,0,MODE_DESCEND);for (int y=214;y>=0;y--) { for (int a=214;a>=0;a--) { if (m1[y]==m2[a]) { d[y][1]=d[a][0]; d[y][3]=d[a][2]; Print("m1[y]=",m1[y],"d[y][1]=",d[y][1],"d[y][3]=",d[y][3],"y=",y); break; } } } Mislaid 2016.11.07 21:52 #72 forexman77:ほとんど授業ばかりで、私にとっては暗黒の森のようなものです。しかし、ある思いが湧いてきました。日付と数字を別々に配列にする。ただ、ソート後の日付があるインデックス番号を取得する方法、つまり、2次元にあるiを取得する方法はありますか?datetime m[215][1];double d[215][2]; m[0][i]=Dat_DtTm; d[i][0]=f1; d[i][1]=f2;もっと単純な話なんですけどね。例えば、datetime m_date[4000] のような日付配列と、int, string, double ... などの任意の型の、任意の次元の配列があるとします。これらの配列のi行目のデータが日付m_date[ i ]に対応するように,すべて関連付けられている。これらの配列をすべて日付でソートする必要があります。これらの配列の行数(日付の数)をm_dimとする。この例では、ArrayResizeを コストのかかる操作として使用 せず、m_dim <= 4000だけとします。// Создаем индексный массив Все остальные массивы в первом измерении имеют ту же размерность int m_index[ 4000, 2 ];// Заполняем массив индексов:for ( int i = 0; i < m_dim; i ++ ){ m_index[ i, 0 ] = m_date[ i ]; m_index[ i, 1 ] = i;}// Сортируем индексный массивArraySort( m_index, m_dim, 0, MODE_DECEND);// Всеここで,1次元目から日付を取り出し,2次元目からその日付に対応する配列のインデックスを 取り出します。 Single array calculation during forexman77 2016.11.07 23:21 #73 Mislaid:すべてがよりシンプルになりました。例えば,datetime m_date[4000] のような日付の配列と,int, string, double などの任意の型の配列,および任意の次元の配列があるとします.これらの配列のi行目のデータが日付m_date[ i ]に対応するように,すべて関連付けられている。これらの配列をすべて日付でソートする必要があります。これらの配列の行数(日付の数)をm_dimとする。この例では、ArrayResizeを コストのかかる操作として使用 せず、m_dim <= 4000だけとします。// Создаем индексный массив Все остальные массивы в первом измерении имеют ту же размерность int m_index[ 4000, 2 ];// Заполняем массив индексов:for ( int i = 0; i < m_dim; i ++ ){ m_index[ i, 0 ] = m_date[ i ]; m_index[ i, 1 ] = i;}// Сортируем индексный массивArraySort( m_index, m_dim, 0, MODE_DECEND);// Всеここで,1次元目から日付を取り出し,2次元目からその日付に対応する配列のインデックスを 取り出します。 ありがとうございました。活用させていただきます。 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ほとんど授業ばかりで、私にとっては暗黒の森のようなものです。しかし、ある思いが湧いてきました。日付と数字を別々に配列にする。ただ、ソート後の日付があるインデックス番号を取得する方法、つまり、2次元にあるiを取得する方法は?
double d[215][2];
m[0][i]=Dat_DtTm;
d[i][0]=f1;
d[i][1]=f2;
を行いました。
datetime m2[215];
double d[215][4];
m1[i]=Dat_DtTm;
m2[i]=Dat_DtTm;
d[i][0]=f1;
d[i][1]=0.0;
d[i][2]=f2;
d[i][3]=0.0;
ArraySort(m1,WHOLE_ARRAY,0,MODE_DESCEND);
for (int y=214;y>=0;y--)
{
for (int a=214;a>=0;a--)
{
if (m1[y]==m2[a])
{
d[y][1]=d[a][0];
d[y][3]=d[a][2];
Print("m1[y]=",m1[y],"d[y][1]=",d[y][1],"d[y][3]=",d[y][3],"y=",y);
break;
}
}
}
ほとんど授業ばかりで、私にとっては暗黒の森のようなものです。しかし、ある思いが湧いてきました。日付と数字を別々に配列にする。ただ、ソート後の日付があるインデックス番号を取得する方法、つまり、2次元にあるiを取得する方法はありますか?
double d[215][2];
m[0][i]=Dat_DtTm;
d[i][0]=f1;
d[i][1]=f2;
もっと単純な話なんですけどね。例えば、datetime m_date[4000] のような日付配列と、int, string, double ... などの任意の型の、任意の次元の配列があるとします。
これらの配列のi行目のデータが日付m_date[ i ]に対応するように,すべて関連付けられている。これらの配列をすべて日付でソートする必要があります。
これらの配列の行数(日付の数)をm_dimとする。この例では、ArrayResizeを コストのかかる操作として使用 せず、m_dim <= 4000だけとします。
int m_index[ 4000, 2 ];
// Заполняем массив индексов:
for ( int i = 0; i < m_dim; i ++ )
{
m_index[ i, 0 ] = m_date[ i ];
m_index[ i, 1 ] = i;
}
// Сортируем индексный массив
ArraySort( m_index, m_dim, 0, MODE_DECEND);
// Все
ここで,1次元目から日付を取り出し,2次元目からその日付に対応する配列のインデックスを 取り出します。
すべてがよりシンプルになりました。例えば,datetime m_date[4000] のような日付の配列と,int, string, double などの任意の型の配列,および任意の次元の配列があるとします.
これらの配列のi行目のデータが日付m_date[ i ]に対応するように,すべて関連付けられている。これらの配列をすべて日付でソートする必要があります。
これらの配列の行数(日付の数)をm_dimとする。この例では、ArrayResizeを コストのかかる操作として使用 せず、m_dim <= 4000だけとします。
int m_index[ 4000, 2 ];
// Заполняем массив индексов:
for ( int i = 0; i < m_dim; i ++ )
{
m_index[ i, 0 ] = m_date[ i ];
m_index[ i, 1 ] = i;
}
// Сортируем индексный массив
ArraySort( m_index, m_dim, 0, MODE_DECEND);
// Все
ここで,1次元目から日付を取り出し,2次元目からその日付に対応する配列のインデックスを 取り出します。