如何在matlab中创建单维数组?

时间:2012-07-20 17:22:25

标签: matlab

我想在MATLAB里面创建一个单维数组for循环,请帮助下面的代码:

count = 0;  
for i=1:10  
arr = count;  
count = count+1;    
end

当我执行这个小代码时,我得到9作为arr的结果。

而不是这个我希望有一个数组arr,每次迭代我有10个计数值,请帮助.....

3 个答案:

答案 0 :(得分:7)

有几种方法可以在Matlab中创建数组。你最常遇到的是

  • 通过范围表达式:

    a = 1 : 10;    % Creates a row vector [1, 2, ... 10]
    a = (1 : 10)'; % Creates a column vector [1, 2, ... 10]^T.
    
  • 通过生成函数:

    a = zeros(1, 10); % Creates a 1x10 (=row vector) containing 10 zeros.
    a = zeros(10, 1); % Creates a 10x1 (=column vector) containing 10 zeros.
    

    其他生成函数是ones来创建元素所在的向量/矩阵 全1,rand生成具有均匀分布随机数的向量/矩阵, randn用于具有高斯分布等的随机矩阵。

  • 通过连接(这是,但很容易实现,有时无法避免):

    % Create a vector containing the numbers 1, 4, 9, 16, ... 100.
    a = [];
    for idx = 1 : 10
        a = [a, idx^2];   % Creates a row vector.
        % a = [a; idx^2]; % Creates a column vector.
    end
    
  • 通过分配大于当前大小的数组索引(再次,如果 在一个循环中完成):

    % Create a vector containing the numbers 1, 4, 9, 16, ... 100.
    for idx = 1 : 10
        a(idx) = idx^2;
    end
    

    注意:我不确定这是否适用于每个版本的Matlab。

答案 1 :(得分:4)

arr = zeros(10,1); % to initialize array
count = 0;  
for i=1:10  
arr(i) = count;  
count = count+1;    
end

答案 2 :(得分:1)

为了给数组赋值,你需要告诉matlab你希望它在数组中的位置。

首先,使用

创建一个大小合适的零数组
arr = zeros(1,10);

然后,您可以{/ 1}}将count分配给i的元素arr

arr(i) = count;

所以你提供的代码变成了

count = 0;
arr = zeros(1,10);
for i=1:10
    arr(i) = count;
    count = count + 1;
end

当然,正如其他人所提到的,有更简单的方法来完成这项特殊任务,例如

arr = 0:9;

其中0:9是'包含0到9整数的行数组'的简写。