Matlab 保存在每个循环中创建的矩阵值保存在公共矩阵中,每个循环矩阵具有相同的行大小,但列为ow
现在将此所有名称值矩阵保存在所有生成值的结果矩阵中Matlab 保存在每个循环中创建的矩阵值保存在公共矩阵中,每个循环矩阵具有相同的行大小,但列为ow,matlab,for-loop,matrix,Matlab,For Loop,Matrix,现在将此所有名称值矩阵保存在所有生成值的结果矩阵中 在每个循环中,行大小不固定,但coiumn为2预先分配最大大小的矩阵,并删除末尾的冗余行: a=18; b=22; for i=1:10 r1 = randi([18 22],1,1) name= (b-a).*rand(r1,2) + a end 你可以用一行代码来实现它;实际上,在循环的每个迭代中 你: 生成一个整数随机数r1(例如20) 然后使用它生成r1double随机数,该随机数乘以(b-a) 然后添加到a 这些随机数不受prev
在每个循环中,行大小不固定,但coiumn为2预先分配最大大小的矩阵,并删除末尾的冗余行:
a=18;
b=22;
for i=1:10
r1 = randi([18 22],1,1)
name= (b-a).*rand(r1,2) + a
end
你可以用一行代码来实现它;实际上,在循环的每个迭代中 你:
- 生成一个
随机数整数
(例如r1
)20
- 然后使用它生成
r1
随机数,该随机数乘以double
然后添加到(b-a)
a
- 这些随机数不受previos迭代中生成的随机数的影响
和a
是常量,因此在循环中不要更改b
和
整数
随机数,因此您可以在计算name
和sum
时直接生成10
整数随机数,以创建所需的集name
值:
a = 18;
b = 22;
% number of iterations
n = 10;
% maximum number of rows
maxRows = b*n;
% preallocating matrix
nameMat = zeros(maxRows,2);
currentRow = 0;
for i = 1:n
r1 = randi([18 22],1,1);
name = (b-a).*rand(r1,2) + a;
nameRows = size(name,1);
nameMat((1:nameRows) + currentRow,:) = name;
currentRow = currentRow + nameRows;
end
% remove redundant rows
nameMat(currentRow+1:end,:) = [];
希望这有帮助
Qapla'可能的副本
a=18;
b=22;
n_iter=10;
name=(b-a).*rand(sum(randi([18 22],n_iter,1)),2) + a