Каково различие между {} и [] в MATLAB?

>> A={1 2;2 3}

A = 

    [1]    [2]
    [2]    [3]
>> A=[1 2;2 3]

A =

     1     2
     2     3

Это кажется мне, они - по существу то же самое?

5
задан Gtker 16 April 2010 в 16:58
поделиться

3 ответа

{} предназначены для ячеек. [] предназначены для массивов / матриц.

11
ответ дан 18 December 2019 в 06:22
поделиться

Нет. Это совсем не одно и то же. Единственный аспект, который остается таким же, - это получившаяся форма.

Массив (который вы создаете с помощью []) можно использовать для выполнения линейной алгебры. Одно число в каждом элементе.

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]

Мы могли бы даже создать массив ячеек, в котором каждая ячейка содержит только одно скалярное число. Но в этом не было бы реального смысла, поскольку мы не можем выполнять арифметические операции с использованием массивов ячеек.

4
ответ дан 18 December 2019 в 06:22
поделиться

[] - оператор, связанный с массивом. Массив может быть любого типа - массив чисел, массив символов (строка), массив структур или массив ячеек. Все элементы в массиве должны быть одного типа !

Пример: [1,2,3,4]

{} - это тип. Представьте, что вы хотите поместить в массив элементы разного типа - числа и строки. Это возможно с помощью хитрости - сначала поместите каждый элемент в контейнер {} , а затем создайте массив из этих контейнеров - массив ячеек.

Пример: [{1}, {'Hallo'}] с сокращенной записью {1, 'Hallo'}

Необязательно размещать объекты одного типа (удваивается ) в массив ячеек, как в вашем примере.

8
ответ дан 18 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: