matlab 单元,MATLAB单元阵列
示例
同一類的元素通常可以連接成數組(有一些罕見的例外,例如函數句柄)。數值標量(默認為class double)可以存儲在矩陣中。
>>?A?=?[1,?-2,?3.14,?4/5,?5^6;?pi,?inf,?7/0,?nan,?log(0)]
A?=
1.0e+04?*
0.0001???-0.0002????0.0003????0.0001????1.5625
0.0003???????Inf???????Inf???????NaN??????-Inf
char在MATLAB中屬于類的字符也可以使用類似的語法存儲在數組中。這樣的數組類似于許多其他編程語言中的字符串。
>>?s?=?['MATLAB?','is?','fun']
s?=
MATLAB?is?fun
請注意,盡管兩者都使用方括號[和],結果類卻不同。因此,可以對它們執行的操作也不同。
>>?whos
Name??????Size????????????Bytes??Class?????Attributes
A?????????2x5????????????????80??double
s?????????1x13???????????????26??char
事實上,該陣列s是不是字符串數組'MATLAB ','is '和'fun',它僅僅是一個字符串-的13個字符數組。如果由以下任何一項定義,您將獲得相同的結果:
>>?s?=?['MAT','LAB?','is?f','u','n'];
>>?s?=?['M','A','T','L','A','B,'?','i','s','?','f','u','n'];
常規的MATLAB向量不允許您混合使用不同類的變量或幾個不同的字符串。這是cell陣列派上用場的地方。這是一個單元格數組,每個單元格可以包含一些MATLAB對象,如果需要,每個單元格中的類可以有所不同。使用花括號{并將其}周圍的元素存儲在單元格數組中。
>>?C?=?{A;?s}
C?=
[2x5?double]
'MATLAB?is?fun'
>>?whos?C
Name??????Size????????????Bytes??Class????Attributes
C?????????2x1???????????????330??cell
任何類的標準MATLAB對象都可以一起存儲在單元格數組中。請注意,單元陣列需要更多的內存來存儲其內容。
使用大括號{和可以訪問單元格的內容}。
>>?C{1}
ans?=
1.0e+04?*
0.0001???-0.0002????0.0003????0.0001????1.5625
0.0003???????Inf???????Inf???????NaN??????-Inf
請注意,C(1)與有所不同C{1}。后者返回單元格的內容(并double在示例中包含類),而前者返回的單元格數組是的子數組C。同樣,如果D是10×5的單元格數組,D(4:8,1:3)則將返回D大小為5×3且類為的子數組cell。而且語法C{1:2}沒有單個返回的對象,但是評分器返回兩個不同的對象(類似于具有多個返回值的MATLAB函數):
>>?[x,y]?=?C{1:2}
x?=
1????????????????????????-2??????????????????????3.14???????????????????????0.8?????????????????????15625
3.14159265358979???????????????????????Inf???????????????????????Inf???????????????????????NaN??????????????????????-Inf
y?=
MATLAB?is?fun
總結
以上是生活随笔為你收集整理的matlab 单元,MATLAB单元阵列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java实现word邮件合并,Aspos
- 下一篇: php如何使用代码清除bom,使用php