Массив mxChar к строке C-стиля или Фортрану массив character
#include "matrix.h" int mxGetString(const mxArray *pm, char *str, mwSize strlen);
#include "fintrf.h" integer*4 mxGetString(pm, str, strlen) mwPointer pm character*(*) str mwSize strlen
pmУказатель на массив mxChar.
strСтартовое местоположение. mxGetString пишет символьные данные в str и затем, в C, отключает строку с символом NULL (способом струн до). str может указать или на динамическую память или на статическое ЗУ.
strlenНа размер в байтах целевого буфера указывает str. Как правило, в C, вы устанавливаете strlen на 1 плюс число элементов в mxArray, на который указывает pm. Чтобы получить число элементов, используйте mxGetM или mxGetN.
Не используйте с Многобайтовыми Закодированными Символами.
0 на успехе или если strlen == 0 и 1 на отказе. Возможные причины для отказа включают:
mxArray не является массивом mxChar.
strlen не является достаточно большим, чтобы сохранить целый mxArray. Если так, затем функция возвращает 1 и обрезает строку.
Вызовите mxGetString, чтобы скопировать символьные данные mxArray в строку C-стиля в C или массив character на Фортране. Скопированные данные запускаются в str и содержат не больше, чем символы strlen-1 в C (не больше, чем символы strlen на Фортране). В C строка C-стиля всегда отключается с символом NULL.
Если массив содержит несколько строк, то функция копирует их в единый массив, один столбец за один раз.
Используйте эту функцию только с символами, представленными в однобайтовых схемах кодирования. Для символов, представленных в многобайтовых схемах кодирования, используйте функцию C mxArrayToString. Приложения Фортрана должны выделить достаточное место для возвращаемой строки, чтобы избежать возможного усечения.
Смотрите эти примеры в :matlabroot/extern/examples/mx
Смотрите эти примеры в :matlabroot/extern/examples/mex
Смотрите эти примеры в :matlabroot/extern/examples/refbook
mxArrayToString, mxCreateCharArray, mxCreateCharMatrixFromStrings, mxCreateString, mxGetChars