2012-01-09 42 views
0

是否有可能將C中的數組的想法應用於MATLAB 例如,如果我們有 雙數組[10]; ,如果我們想分配一個值,我們寫例如 Array [5] = 2;matlab中的C數組的想法

有沒有什麼辦法可以在MATLAB中編寫等價的代碼?

+0

可以在兩個downvoters解釋自己? – 2012-01-09 15:44:19

+0

@Andrey:我的猜測是,這是因爲問題不是很清楚。 OP感興趣的是C風格索引的具體內容? – Nzbuu 2012-01-09 16:40:34

+0

我的意思是如何初始化一個數組,併爲數組中的元素指定一個特定的值,就像我們在C中所做的一樣。我想克里斯明白我的意思。感謝每個人都給我他的回答或他的意見。 – Fatimah 2012-01-09 18:46:12

回答

2

我不確定你的意思是「是否可以將C中的數組應用到MATLAB中」。一個數組只是一個數字(或其他數據類型)的一維列表。 MATLAB主要設計用於處理矩陣(MATLAB是Matrix laborartory的簡稱),而數組或矩陣只是矩陣的特例。所以我想你的問題的答案是肯定的,如果我理解正確的話。

初始化在MATLAB陣列或矩陣,我們使用zerosones

>> array = zeros(1,5) 

array = 

    0  0  0  0  0 

我們就可以以同樣的方式在陣列的索引元素作爲C:

>> array(3) = 3 

array = 

    0  0  3  0  0 

然而,注意, MATLAB數組索引是基於一個而C數組是基於零的。

This文章描述了MATLAB中的矩陣/數組索引。

+0

我認爲他的意思是語法。 – 2012-01-09 14:59:02

2

您可以定義自己的類,覆蓋[]運算符。
我描述了機制Here
由於它是一個自定義函數,您可能還需要將基於1的索引更改爲基於0的索引。

關於構造函數,我懷疑你可以這樣做。

無論如何,你爲什麼要這麼做?
你會混淆所有的Matlab用戶,並造成嚴重破壞。
在羅馬時,像羅馬人那樣做。

0

是的,你可以。數組用於C和MATLAB,它們可以用於相同的功能。除了請注意,C和MATLAB的數組索引是不同的。

C數組的第一個元素的索引爲零。即在X = [10 20 30 40]中,x [0]將返回10.但是在MATLAB中,這會給出錯誤。要訪問數字10,必須在MATLAB中使用表達式x [1]。

+4

'x [2]'給出'錯誤:不平衡或意外的括號或括號.' – Nzbuu 2012-01-09 16:35:26

0

沒有索引運算符[]。您必須使用()來索引數組。

如果你寫

x = 1:10; 
x[2] 

那麼你會得到下面的錯誤

x[2] 
| 
Error: Unbalanced or unexpected parenthesis or bracket.