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,请帮助.....
有几种方法可以在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.