如何用可变数字填充矩阵?

时间:2019-01-11 12:03:05

标签: matlab matrix matrix-multiplication

我需要填充矩阵r,其中r=r(z)ri是常数。但是使用此代码,我只会得到第一行r=-0.7:0.7

z=-1:0.001:0;
ri=0.7;
R=ri-z*(ri-1);
for z=-1:0.001:0;
r=(linspace(-(ri-z*(ri-1)),ri-z*(ri-1),1001))
end

meshgrid也不起作用,因为它在行的末尾提供了恒定值

我的完整矩阵必须为这种形状或转置:

-0.7......  0.7

0.8  ...    0.8
.            .
.            .
.            .
0 .9 ...     0.9
.            .
.            .
.            .
1     ...    1

0   ......  0.7
0    ...    0.8
.            .
.            .
.            .
0  ...      0.9
.            .
.            .
.            .
0     ...    1

1 个答案:

答案 0 :(得分:0)

就像@Ander Biguri所说的那样,问题在于每次通过循环都设置r并覆盖前一遍的内容。在循环的最后,您将得到最后一行(而不是第一行)。预分配r

r = zeros(numel(z), 1001);

然后以

循环
for k=1:numel(z)
   R=ri-z(k)*(ri-1); 
   r(k,:) = linspace(-R, R, 1001);% <-- Different row each pass
end

希望这会有所帮助,

JAC