mxArray
sДвоичные файлы MEX, созданные на 64-разрядных платформах, могут обрабатывать 64-разрядные mxArray
s. Эти большие массивы данных могут иметь до 248-1 элемент. Максимальное количество элементов разреженного mxArray
может иметь значение 248-2.
Использование следующих инструкций также создает независимые от платформы двоичные файлы MEX.
Ваше системное строение может повлиять на эффективность MATLAB®. Требование к 64-разрядному процессору позволяет вам создать mxArray
и доступ к данным в нем. Однако системная память, в частности размер оперативной и виртуальной памяти, определяют скорость, с которой MATLAB обрабатывает mxArray
. Чем больше доступной памяти, тем быстрее обработка.
Объем оперативной памяти также ограничивает объем данных, которые можно обработать за один раз в 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
или другой переменной, которая может быть слишком маленькой.