"MATLAB 7 (Наиболее полное руководство в подлиннике)" - читать интересную книгу автора (Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н.)

По умолчанию все числа (элементы массивов) хранятся с двойной точностью (double) и занимают 8 байтов. Большие массивы требуют для хранения значительных объемов памяти. Для уменьшения объема занимаемой массивами памяти можно применять другие способы хранения элементов массива: single для вещественных чисел, требующих для размещения 4 байта, и ints, intie, int32 —для целых чисел, занимающих ], 2 или 4 байта соответственно. Использование таких данных значительно экономит память и не влияет на функциональные возможности пакега MATLAB.
Для изменения точности представления чисел предназначены одноименные с типом (Class) данных функций single, ints, intie, int32:
>> q4 = single(s4);
» q3 = int32(s3) ;
» q2 = intl6{s2) ;
>> ql = int8(sl);
Если теперь посмотреть распределение памяти под массивы, то легко заметить существенную разницу в отведенной для хранения памяти:
» whos
Name Size Bytes Class
qi 1x4 4 int8 array
q2 1x4 3 intl6 array
q3 1x4 16 int32 array
q4 1x4 16 single array
si 1x4 32 double array
s2 1x4 32 double array
S3 1x4 32 double array
s4 1x4 32 double array
Для массивов большой размерности экономия памяти может быть существенной. Выполнение арифметических операций с вещественными числами разного типа допустимо и дает результат с наименьшей точностью — single:
» qs44 = q4 + s4; >> whos qs44
Глава 2. Работа с массивами
55
Name Size Bytes Class qs44 1x4 16 single array
Попытка выполнить арифметические операции над целыми числами разных типов приводит к ошибке:
» q31 = q3 + ql
??? Error using --> plus
Integers can only be combined with integers of the same class, or scalar doubles.
Более того, при преобразовании целого числа, когда для точного представления не хватает отводимой памяти, получается максимальное число для данного типа (т. е. неверный результат) без предупреждения об этом:
» Wl = 34567;
» rl = intB(wl)
rl =¦
127
» tl = intlfi(wl)
tl =
32767
Поэтому применение целых чисел, имеющих меньшую точность представления, ограничено. Вернемся к работе с векторами и матрицами, используя принятое по умолчанию представление чисел double.
Из нескольких вектор-столбцов можно составить один, используя квадратные скобки и разделяя исходные вектор-столбцы точкой с запятой:
>> vl = [1; 2];
» v2 - [3; А; 5]; » v = [vl; v2]
V =
1

Для сцепления вектор-строк также применяются квадратные скобки, но сцепляемые вектор-строки отделяются пробелами или запятыми:
» vl = [pi pi/2]|
» v2 в. [pi/3 pi/4 pi/5];
56 ¦
Часть I, Основы работы в MATLAB
» v = [vl v2]
V =
3.1416 1.570В
1.0472