2011-04-07 113 views
1

我想聲明array類型integer的命名序列。Matlab聲明數組

經過仿真序列後,它看起來像[1,3,4,59.........n elements]。我不知道n的價值,因爲它是random integer

如何將聲明順序爲array類型int?我的確喜歡sequence= [1,1],但是這並沒有成功,因爲有時候只有1個元素,然後它有2個而不是1個元素。

+0

數組的值來自哪裏?這將會影響你可以使用的功能。 – eykanal 2011-04-07 18:03:54

+0

使用'foo = typecast(foo,'int16')'將'foo'的數據類型從'double' _(default)_轉換爲'int16'類型。另外,聲明'foo'如下:'foo = int16([])'。 P.S. :您可以從各種[數據類型]中選擇(http://www.mathworks.in/help/matlab/numeric-types.html) – 2013-07-30 18:05:07

回答

2

在你不能預先分配數組(當你不事先知道數組的大小)的情況下,你可以使用下面的方法:

sequence = []; 
sequence(end+1) = 1; 
sequence(end+1) = 3; 
sequence(end+1) = 4; 
... 

這種方法看作治療sequence爲C++ std::vectorsequence(end+1) = 1相當於sequence.push_back(1)

2

用於聲明的陣列的標準格式是:

foo = []; 

並且可以設置在陣列中的任何元素,在任何時間,和Matlab會自動調整。例如:

foo = []; 
foo(4) = 1 

產生

foo = [ 0 0 0 1] 

如果你不知道你的數組有多少個元素需要持有,你可以做雅各布表明,只是每一次調整陣列。但是,如果這會導致代碼中出現瓶頸(可以使用Matlab中的配置文件工具查找),則可能需要不經常調整大小,併爲尚未使用的元素使用佔位符值。

0
var=[ val1 val2 val3....valn] 
for i=1:numel(var) 
result=var(i) 
end