Minecraft892 2023-03-02 14:54 采纳率: 0%
浏览 47
已结题

关于#python#,matlab nan的问题,如何解决?

python调用matlab文件的过程中,matlab文件返回了一个一维数组,但是在python中输出却是全为nan
python调用文件如下

from __future__ import print_function
import Detal_R2
import matlab
import matplotlib.pyplot as plt
import numpy as np

my_Detal_R2 = Detal_R2.initialize()

waveIn = matlab.double([0.000004], size=(1, 1))
IIn = matlab.double([1.35 * 10 ^ 18], size=(1, 1))
detal_ROut = my_Detal_R2.detal_R2(waveIn, IIn)
y = np.array(detal_ROut)
x = np.linspace(0, 20 * 10 ^ -12, 300)
plt.plot(x, y)
plt.show()

my_Detal_R2.terminate()

python在cmd中输出如下:

[[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],
[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[
nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[n
an],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[na
n],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan
],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan]
,[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],
[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[
nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan],[nan]]


  • 写回答

7条回答 默认 最新

  • weixin_44616020 2023-03-02 15:07
    关注

    在Python中输出的结果显示全部为NaN,这可能是因为在MATLAB中返回的double数组中的元素被自动转换为NaN,这可能是由于MATLAB中的NaN和Python中的NaN之间的差异引起的。您可以在Python中通过检查每个元素来确认是否是NaN,这可以通过使用numpy库中的numpy.isnan()函数来完成。

    import numpy as np
    ...
    y = np.array(detal_ROut)
    print(np.isnan(y).any()) # Check if any element in y is NaN
    
    
    

    如果结果为True,则意味着y中至少有一个元素是NaN,否则为False。如果结果为True,则可以尝试在MATLAB中进行调试,以查看生成的数组中的元素是否正确。

    评论

报告相同问题?

问题事件

  • 系统已结题 3月10日
  • 创建了问题 3月2日

悬赏问题

  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥20 设计一个二极管稳压值检测电路
  • ¥15 内网办公电脑进行向日葵
  • ¥15 如何输入双曲线的参数a然后画出双曲线?我输入处理函数加上后就没有用了,不知道怎么回事去掉后双曲线可以画出来
  • ¥50 WPF Lidgren.Network.Core2连接问题
  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp