提问提问!
我想把函数运算出的结果作为实数存起来,但是一直是复数的某一部分

参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。
在MATLAB中,如果你得到的是复数解,但你只对实部感兴趣,可以使用real()函数提取实部。针对你的代码,我会在计算mx2和my2时添加这一步。以下是修改后的代码段:
for i = 1:6
x1 = A(1, i);
syms x y real
eqn01 = 0 == tan(2 * p - 3 / 2 * pi) * (x + 1 * cos(p) - x1) - y;
eqn02 = 0 == x^2 + (y - 100 - r)^2 - r^2;
s = solve(eqn01, eqn02, x, y);
V = vpasolve(eqn01, eqn02, x, y);
% 提取实部
mx2(i, 1) = real(V.x(1, 1));
my2(i, 1) = real(V.y(1, 1));
end
dx = abs(mx2);
dy = abs(my2);
这里我将syms x y real加入定义符号变量的部分,这样默认求解结果就是实数。然后在计算mx2和my2时,我使用了real()函数来提取复数解的实部。
如果你的原始问题中的结果已经是实数,但是你想确保它们被存储为实数,上述代码同样适用。如果你遇到其他问题,或者需要进一步的帮助,请随时告诉我。