2010-04-16 65 views
4
>> A={1 2;2 3} 

A = 

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

A = 

    1  2 
    2  3 

在我看來他們基本上是一樣的東西?MATLAB中的{}和[]有什麼區別?

+1

http://stackoverflow.com/questions/9055015/difference-between- access-cell-elements-using-and-curly-braces-vs-par – 2014-05-24 10:57:33

+1

[在matlab中單元和矩陣之間的區別?]的可能重複(http://stackoverflow.com/questions/13000923/difference-between-cell- and-matrix-in-matlab) – 2017-05-22 04:36:13

回答

10

{}是爲細胞。 []是陣列/矩陣。

+1

單元格和數組/矩陣有什麼區別? – Gtker 2010-04-16 17:05:28

+5

http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/br04bw6-98.html#br1xnp2-1 – Jacob 2010-04-16 17:12:07

4

不,他們根本不是一回事。唯一的方面是相同的結果形狀。

數組(使用[]構建的數組)可用於執行線性代數。每個元素都有一個數字。

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] 

我們甚至可以創建一個單元陣列,其中每個單元只包含一個標量數字。但是這樣做沒有實際意義,因爲我們不能用單元陣列進行算術運算。

7

[]是一個數組相關的運算符。數組可以是任何類型 - 數組數組,char數組(字符串),結構數組或單元數組。數組中的所有元素必須是相同類型的

實施例:[1,2,3,4]

{}是一種類型。想象一下,你想把不同類型的項目放到一個數組中 - 一個數字和一個字符串。這是可能的一個技巧 - 首先將每個項目放入一個容器{},然後用這些容器(單元陣列)製作一個數組。

示例:[{1},{'Hallo'}]與速記符號{1, 'Hallo'}

這是不必要把相同類型的(重複)的物體插入單元陣列像在您的示例。

1

如果它涉及到面向對象的編程, 細胞{}是類似對象和[]是用於相關 陣列