>> A={1 2;2 3}
A =
[1] [2]
[2] [3]
>> A=[1 2;2 3]
A =
1 2
2 3
Это кажется мне, они - по существу то же самое?
{}
предназначены для ячеек. []
предназначены для массивов / матриц.
Нет. Это совсем не одно и то же. Единственный аспект, который остается таким же, - это получившаяся форма.
Массив (который вы создаете с помощью []) можно использовать для выполнения линейной алгебры. Одно число в каждом элементе.
A = [1 2 3;4 5 6;7 8 9];
[3 5 7]*A*[2 3 5]'
ans =
915
Массив ячеек - это общий контейнер, который будет содержать любой объект, любую переменную Matlab целиком в каждой ячейке. Таким образом, мы можем создать массив ячеек, состоящий из элементов любой формы и размера.
C = {'The' 'quick' 'brown' 'fox' 'jumps' 'over' 'the' 'lazy' 'dog'};
C - это массив ячеек с 9 элементами. Мы можем поместить туда любой класс переменных.
C = {'asfghhrstyjtysj', 1:5, magic(4), sqrt(-1)}
C =
'asfghhrstyjtysj' [1x5 double] [4x4 double] [0 + 1i]
Мы могли бы даже создать массив ячеек, в котором каждая ячейка содержит только одно скалярное число. Но в этом не было бы реального смысла, поскольку мы не можем выполнять арифметические операции с использованием массивов ячеек.
[]
- оператор, связанный с массивом. Массив может быть любого типа - массив чисел, массив символов (строка), массив структур или массив ячеек. Все элементы в массиве должны быть одного типа !
Пример: [1,2,3,4]
{}
- это тип. Представьте, что вы хотите поместить в массив элементы разного типа - числа и строки. Это возможно с помощью хитрости - сначала поместите каждый элемент в контейнер {}
, а затем создайте массив из этих контейнеров - массив ячеек.
Пример: [{1}, {'Hallo'}]
с сокращенной записью {1, 'Hallo'}
Необязательно размещать объекты одного типа (удваивается ) в массив ячеек, как в вашем примере.