Обработка Большого mxArrays
Бинарные файлы MEX основывались на 64-битных платформах, может обработать 64-битный mxArray
s. Эти большие массивы данных могут иметь до 248-1 элемента. Максимальное количество элементов, которые может иметь разреженный mxArray
, 248-2.
Используя следующие инструкции создает платформенно независимые бинарные файлы MEX также.
Ваша конфигурация системы может влиять на производительность MATLAB®. 64-битное требование процессора позволяет вам создать mxArray
и данные доступа в нем. Однако системная память, в частности размер Оперативной и виртуальной памяти, определяет скорость, на которой MATLAB обрабатывает mxArray
. Чем больше доступной памяти, тем быстрее обработка.
Сумма RAM также ограничивает объем данных, который можно обработать когда-то в MATLAB. Для руководства на проблемах памяти см. Стратегии Эффективного использования Памяти.
Подписи API-функций, показанных в следующей таблице, используют mwSize
или типы mwIndex
, чтобы работать с 64-битным mxArray
. Переменные, которые вы используете в своем исходном коде, чтобы вызвать эти функции, должны быть правильным типом.
Фортран функции mxArray
Используя mwSize
/mwIndex
mxCalcSingleSubscript | mxCreateStructMatrix |
mxCalloc | mxGetCell |
| mxGetDimensions |
| mxGetElementSize |
| mxGetField |
| mxGetFieldByNumber |
| mxGetIr |
| mxGetJc |
| mxGetM |
| mxGetN |
| mxGetNumberOfDimensions |
| mxGetNumberOfElements |
| mxGetNzmax |
| mxGetProperty |
| mxGetString |
| mxMalloc |
| mxRealloc |
| mxSetCell |
| mxSetDimensions |
mxCreateCellArray | mxSetField |
mxCreateCellMatrix | mxSetFieldByNumber |
mxCreateCharArray | mxSetIr |
mxCreateCharMatrixFromStrings | mxSetJc |
mxCreateDoubleMatrix | mxSetM |
mxCreateNumericArray | mxSetN |
mxCreateNumericMatrix | mxSetNzmax |
mxCreateSparse | mxSetProperty |
mxCreateStructArray |
При использовании 64-битного API mwSize
и mwIndex
эквивалентны INTEGER*8
на Фортране. Этим типом является различающийся INTEGER*4
без знака, который является типом, используемым в 32-битном API. Бойтесь передавать любые отрицательные величины функциям тот mwSize
или mwIndex
взятия аргументы. Не бросайте отрицательные значения INTEGER*4
к mwSize
или mwIndex
; возвращенное значение не может быть предсказано. Вместо этого измените свой код, чтобы избегать использования отрицательных величин.
Если вы разрабатываете кросс-платформенные приложения (программы, которые могут работать и на 32-битной и 64-битной архитектуре), обратите внимание на верхний предел значений, которые вы используете для mwSize
и mwIndex
. 32-битное приложение читает эти значения и присваивает их переменным, объявленным как INTEGER*4
на Фортране. Старайтесь постараться не присваивать большой mwSize
или значение mwIndex
к INTEGER*4
или другой переменной, которая может быть слишком маленькой.