| | Olive77 
 Advanced Member
 | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору wInuX
 Спасибо огромное,
 
 вот только не хочется передавать в функцию n и m, поскольку я пытаюсь написать функцию, которую можно будет использовать в Excele.
 За образец взял код  отсюда  (см. функцию Interp()).
 Со случаем, когда надо вернуть в Excel  только одно значение разобрался, а вот с матрицей, пока буксую.
 
 Функция определяется
 __declspec(dllexport) LPXLOPER MatCovar( LPXLOPER xArray ){}
 
 LPXLOPER  - указатель типа long на excelевский класс XLOPER, который соотвествует в VB типу Variant.
 С помощью функции Excel4( xlCoerce, (LPXLOPER) &xMulti, 2, (LPXLOPER) xArray, (LPXLOPER) &tempTypeMulti ) ) осуществляется преобразование данных xArray к 'матричному' типу.
 xMulti теперь можно использовать для получения информации о массиве xArray.
 
 В частности,
 количество столбцов xSizeC = xMulti.val.array.columns,
 количество строк xSizeR = xMulti.val.array.rows,
 указатели на данные массива xPtr = xMulti.val.array.lparray.
 
 Эти указатели можно, по-видимому, как-то использовать для решения моей задачи.
 
 И если я правильно понял код, то элементы массива xMulti опрашиваются при помощи только одного индекса (i=0, ..., xMulti.val.array.rows * xMulti.val.array.columns -1)
 
 Как в выходную матрицу, с помощью указателей, передавать данные знаю (или думаю, что знаю
  ), но проблема в том, что сначала надо создать массив (а может надо использовать какой другой подход), для подсчета средних значений каждого столбца. Размер массива должен определяться в самой функции. |  | Всего записей: 1271 | Зарегистр. 26-12-2002 | Отправлено:  17:28 28-02-2006  | Исправлено: Olive77,   19:47 28-02-2006
 | 
 |