關於MATLAB cell元胞陣列中元素的引用問題

時間 2021-07-01 01:48:41

1樓:匿名使用者

matlab的元胞陣列是cell型別,可以有很多方法建立cell,對於你的要求,可以這樣:

1c =

定義方式(包括空格、逗號和分好的使用)跟普通陣列一樣,只是使用。

當然也可以這樣:

1234c = cell(1,3);c = 'beijing';c = 'capital of china';c = 'famous city';

cell的成員有兩種引用方式:

c(1,1)返回的是cell型別,大小為1*1的cellc返回的是那個元素本身的型別,在上面的例子裡就是字串

2樓:sun耶哈

引用方式一般是用a。在 matlab 中,所有的陣列都可以用「(i)」來表示其中的第i個元素,元胞陣列還可以用「」,表示第i個cell內部。比如我們想定義一個元胞陣列 a,並想給 a 的第一個元素賦值一個矩陣 [1 2 3],則有兩種辦法:

(1)直接給 a 的第一個元胞內部賦值一個矩陣 [1 2 3]:a = [1 2 3];(2)給 a 的第一個原素賦值一個元胞,元胞內部是矩陣 [1 2 3]:a(1) = 表示矩陣 [1 2 3] 放在一個元胞內,然後在給陣列 a 第一個元素,因為這是個陣列,所以 a 是一個元胞陣列。

上面兩種方式等價。

3樓:導超

一般的引用方式一般是用a,看你的習慣了,也不是說a(1)不對,兩個都對。

其實這兩個輸出有差別關鍵就在於,假如我們新建了一個cell(1,2),那麼我們給他賦值的形式可以是:a='aaa',也可以是a(1)= ,所以,你引用裡面的元素的時候,自然也有對應的兩種方式:a 和a(1) ,我們可以看到:

a=aaa a(1)='aaa' ,其實這裡面的aaa和'aaa'都是字串。因為前面的a裡面已經有大括號了,所以後面就不用了再顯示' '了,這也就間接的說明,{}的作用的 ''的作用其實是差不多的。只是一個作用在角標上,一個作用在真正的字元上。

所以捏,顯示有所差別。

給你個例子你就明白了:

num2str('ddddddd')

ans =

ddddddd

一個字串在matlab已經知道他是字串的情況下就會把''去掉。

但是致命的地方不是這裡,你仔細在你的工作空間觀察,你會發現,其實a(1)還是一個細胞,是一個結構,不能進行運算;而a是一個真正的變數,真正能夠進行數值運算!!

你能夠算:a+2 但是不能算a(1)+2 !!!!!!!

matlab怎樣合併元胞陣列

額謝歡 直接用 m n p q 就可以了。請注意 中括號用於陣列拼接,不僅適用於數值型的陣列,也適用於cell和struct等等,包括類,比如傳遞函式tf。m n p q m n p q 胞元陣列 cell arry 的基本組分是胞元 cell 每個胞元本身在陣列中是平等的,只能以下標區分。胞元可以...

高數,定積分的換元法,高數用換元法求不定積分,要過程?

max sinx 2 1 1 1 2 sinx 2 1 1 2 2 2 1 1 1 2 sinx 2 2 2 0 2 dx 1 1 2 sinx 2 0 2 2 2 dx 2 1 1 1 2 sinx 2 1 1 1 1 2 sinx 2 1 0 2 dx 1 1 2 sinx 2 0 2 dx 2...

關於合計取數的問題,關於cpu核數的問題

select 合計 sum 存貨表 fqty sum 銷售訂單分錄表 fqty from t icitem as 物料表 inner join icinventory as 存貨表 on 物料表 fitemid 存貨表 fitemid inner join seorderentry as 銷售訂單分...