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 |
|