mxArraysДвоичные MEX-файлы, созданные на 64-разрядных платформах, могут обрабатывать 64-разрядные mxArrayс. Эти большие массивы данных могут иметь до 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 или другой переменной, которая может быть слишком маленькой.