0

我试图将我的 for 循环中的以下数据放入一个格式化的表格中,以便每列中有 11 个 F 值,总共 4 列。

但我总是以一长列数据结束,而不是我想要的四列。我想知道是否有某种方法可以将数据放入矩阵然后重塑它,但我遇到了麻烦。非常感谢任何帮助。

fprintf ('Electrostatic Forces:\n')
 for  r = 1:4;
    q2 = 0: 1*10^-19: 1*10^-18;
        for F = coulomb(q2,r);
            fprintf ('%d\n',F)
    end
end

函数库仑的代码在哪里

function F = coulomb (q2,r);
k = 8.98*10^9;
q1 = 1.6*10^-19;
F = k*abs(q1*q2)/r^2;

结尾

4

1 回答 1

2

一种方法如下:

fprintf ('Electrostatic Forces:\n')
q2 = 0: 1*10^-19: 1*10^-18;
for h = 1:numel(q2);

    % Coulomb function
    k = 8.98*10^9;
    q1 = 1.6*10^-19;
    F = k * abs(q1 * q2(h))./[1:4].^2;

    for r = 1:4;
        fprintf('%d ', F(r))
    end
    fprintf('\n')
end

另一种方法是将您的功能重新定义为

function F = coulomb (q2, r);
k = 8.98 * 10 ^ 9;
q1 = 1.6 * 10 ^ -19;
F = k * abs(q1 * repmat(q2(:)', numel(r), 1)) ./ (repmat(r(:), 1, numel(q2)) .^ 2);

然后你可以输入

q2 = 0: 1*10^-19: 1*10^-18;
r = 1:4;
F = coulomb(q2, r)'

你会得到你的桌子。

于 2013-10-30T04:06:08.443 回答