SMOP错误转换

2024-10-02 10:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用smoppython脚本在python中转换matlab代码。在

在我的测试matlab代码中,我得到了:

a=10^6*[355,355,373,373,373,373,373]'

它促使我

^{pr2}$

首先是.T的问题

我要改成

a = [355,355,373,373,373,373,373]
a=numpy.asarray(a).T.tolist()

然后是另一个,非常严肃的另一个

10 ** 6 * [355,355,373,373,373,373,373]

不会将数组的每个元素乘以10^6,而是将数组中的每个元素复制10^6倍。在

有什么问题吗?在


Tags: 代码numpy脚本元素数组asarraymatlabtolist
1条回答
网友
1楼 · 发布于 2024-10-02 10:23:20

问题是在Python中操作符*是多态的。如果操作数是数字,则返回两个数字的乘积,但如果一个操作数是整数(例如n),而另一个操作数是序列(即字符串、列表或元组),则它将序列n次串联并返回结果序列。还值得注意的是,如果一个操作数是数值,而另一个操作数是Numpy数组,*执行元素级乘法:

>>> 5*2
10
>>> 'ha'*3
hahaha
>>> [1]*4
[1, 1, 1, 1]
>>> ('a', .5)*3
('a', 0.5, 'a', 0.5, 'a', 0.5)
>>> .1*numpy.array([10, 20, 30])
array([ 1.,  2.,  3.])

尝试这样重写代码:

^{pr2}$

相关问题 更多 >

    热门问题