元胞數(shù)組是一種數(shù)組的數(shù)據(jù)類型,廢話不多說,看代碼
clc
clear all
A = cell(1,6) %創(chuàng)建一個(gè)一行六列的元胞數(shù)組,其中包含1x6個(gè)0行0列矩陣
A{2} = eye(3)
%eye(N),返回N*N大小的單位矩陣
%這里就是將A數(shù)組第2個(gè)矩陣賦值為3x3的單位矩陣(方陣)
%注意A數(shù)組里矩陣的位置{}從1開頭
A{5}=magic(4) %將A數(shù)組第5個(gè)矩陣賦值為4x4的4階幻方矩陣
B=A{5} %用B矩陣表示A數(shù)組的第5個(gè)矩陣是什么東西
讓我們逐一分析
- 創(chuàng)建元胞數(shù)組
A = cell(1,6) %創(chuàng)建一個(gè)一行六列的元胞數(shù)組,其中包含1x6個(gè)0行0列矩陣
命令行窗口可得結(jié)果為
A =
1×6 cell 數(shù)組
{0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double}
- 數(shù)組內(nèi)矩陣賦值,eye函數(shù)用法
A{2} = eye(3)
%eye(N),返回N*N大小的單位矩陣
%這里就是將A數(shù)組第2個(gè)矩陣賦值為3x3的單位矩陣(方陣)
%注意A數(shù)組里矩陣的位置{}從1開頭
結(jié)果為
A =
1×6 cell 數(shù)組
{0×0 double} {3×3 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double}
- 數(shù)組內(nèi)矩陣賦值,magic函數(shù)用法及表達(dá)
A{5}=magic(4) %將A數(shù)組第5個(gè)矩陣賦值為4x4的4階幻方矩陣
B=A{5} %用B矩陣表示A數(shù)組的第5個(gè)矩陣是什么東西
何為幻方(magic)?如圖所示
結(jié)果為
A =
1×6 cell 數(shù)組
{0×0 double} {3×3 double} {0×0 double} {0×0 double} {4×4 double} {0×0 double}
B =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
不難看出,主對角線、副對角線、每行、每列加起來都等于34.
結(jié)構(gòu)體
- 結(jié)構(gòu)體創(chuàng)建格式:
s = struct(field,value)
創(chuàng)建具有指定字段和值的結(jié)構(gòu)體數(shù)組。
- 代碼分析
看一段代碼
clc
clear all
books = struct('name',{{'laoba','laoma'}},'price',[20 50])
%創(chuàng)建一個(gè)結(jié)構(gòu)體,包含name(書名),分別叫l(wèi)aoba、laoma;包含price(價(jià)格),
%分別是20,50元,也是一個(gè)1x2的矩陣。這個(gè)結(jié)構(gòu)體賦值給books
%語法如此
books.name %選擇books.name這個(gè)屬性,name字段包含1行2列的元胞數(shù)組,數(shù)組中
%包含{'laoba'},{'laoma'}的子元胞數(shù)組
books.name(1) %取出name中的第一個(gè)1行1列(子)元胞數(shù)組,也就是{'laoba'}
books.name{1} %取出一個(gè)元胞數(shù)組name中的第一個(gè)值,也就是'laoba'
%總的來說,你就應(yīng)該記住這兩種取出方式分別取出的是什么。
小括號(hào)取出來的是cell數(shù)組。
大括號(hào)取出來的是字符串。
結(jié)果為
books =
包含以下字段的 struct:
name: {'laoba' 'laoma'}
price: [20 50]
>> books.name
ans =
1×2 cell 數(shù)組
{'laoba'} {'laoma'}
>> books.name(1)
ans =
1×1 cell 數(shù)組
{'laoba'} 注意這是數(shù)組
ans =
'laoba' 注意這是字符串。。。。
我覺得的吧這個(gè)結(jié)構(gòu)體真是復(fù)雜,比如laoba、laoma那塊為什么是兩個(gè)大括號(hào)呢?文章來源:http://www.zghlxwxcb.cn/news/detail-497554.html
clc
clear all
books = struct('name',{'laoba','laoma'},'price',[20 50])
%創(chuàng)建一個(gè)結(jié)構(gòu)體,包含name(書名),分別叫l(wèi)aoba、laoma;包含price(價(jià)格),
%分別是20,50元,也是一個(gè)1x2的矩陣。這個(gè)結(jié)構(gòu)體賦值給books
%語法如此
books.name %選擇books.name這個(gè)屬性,name字段包含1行2列的元胞數(shù)組,數(shù)組中
%包含{'laoba'},{'laoma'}的子元胞數(shù)組
books.name(1) %取出name中的第一個(gè)1行1列(子)元胞數(shù)組,也就是{'laoba'}
books.name{1} %取出一個(gè)元胞數(shù)組name中的第一個(gè)值,也就是'laoba'
%總的來說,你就應(yīng)該記住這兩種取出方式分別取出的是什么。
如果我去掉的話,會(huì)有以下結(jié)果文章來源地址http://www.zghlxwxcb.cn/news/detail-497554.html
books =
包含以下字段的 1×2 struct 數(shù)組:
name
price
ans =
'laoba'
ans =
'laoma'
需要花括號(hào)或點(diǎn)索引表達(dá)式中的一個(gè)輸出,但結(jié)果有 2 個(gè)。
出錯(cuò) test (line 9)
books.name(1) %取出name中的第一個(gè)1行1列(子)元胞數(shù)組,也就是{'laoba'}
>>
到了這里,關(guān)于MATLAB學(xué)習(xí)筆記二——元胞數(shù)組、結(jié)構(gòu)體的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!