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

1 matlab

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

count = 0;  
for i=1:10  
arr = count;  
count = count+1;    
end
Run Code Online (Sandbox Code Playgroud)

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

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

Meh*_*olf 7

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

  • 通过范围表达式:

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

    a = zeros(1, 10); % Creates a 1x10 (=row vector) containing 10 zeros.
    a = zeros(10, 1); % Creates a 10x1 (=column vector) containing 10 zeros.
    
    Run Code Online (Sandbox Code Playgroud)

    其他生成函数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
    
    Run Code Online (Sandbox Code Playgroud)
  • 通过分配大于当前大小的数组索引(如果在循环中完成,则再次缓慢):

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

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