我试图将我的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;
端
答案 0 :(得分: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)'
你会有你的桌子。