Массивы объявляются и доступны следующим образом:
const int N = 10; // needs to be a constant
double v[N]; // 1-d
double A[N][N]; // 2-d
v[0] = A[1][2]; // indexing starts at 0, not 1
C не выполняет автоматическую векторизацию, как matlab, поэтому вы должны делать это в циклах for вручную.Вместо R(i,j)=Q(:,i)'*A(:,j)
,
for (int k = 0; k < N; ++k) {
R[i][j] += Q[k][i] * A[k][j];
}
Этот последний фрагмент также демонстрирует, как выглядит цикл for - первый «аргумент» для «for» - инициализация индексной переменной k, второй наборусловие, при котором цикл for продолжается, а третий увеличивает k.Код, который должен быть выполнен в цикле, заключен в фигурные скобки {}.
Основное логическое отличие состоит в том, что вы должны делать все поэлементно в C.