我有一个.py具有许多功能的文件.现在我正在调试代码并发现有时程序卡在某处.
如果我把它留在那里并等待超长时间,则会显示错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 9, in generate
File "<stdin>", line 7, in choosePath
MemoryError
Run Code Online (Sandbox Code Playgroud)
我不知道它被卡住,因为我有几个while和for循环.有没有简单的方法可以轻易搞清楚?我觉得我不愿意另一个循环调试.
我希望在Python中实现以下简单算法.这是它的伪代码.
for elem in myList:
if only one elem satisfies myCondition:
returns it
if more than one satisfies myCondition:
randomly return one out of them
if none satisfies myCondition:
randomly return any one
Run Code Online (Sandbox Code Playgroud)
我当然可以在C风格的代码段中实现它.但我在这里寻找最恐怖的方式.
我有一个字符串如下:
>>> a
'0 911 872.9 354.9 901.9 395.0 904.6 414.0 903.8 400.5'
Run Code Online (Sandbox Code Playgroud)
现在我希望将其转换为数组:
>>> b
array([ 0. , 911. , 872.9, 354.9, 901.9, 395. , 904.6, 414. ,
903.8, 400.5])
Run Code Online (Sandbox Code Playgroud)
最恐怖的做法是什么?
我有一份清单
A=[9.6, 7.9, 19.4, 13.3, 31.0, 16.1, 44.3, 16.4, 55.7, 16.5, 66.6, 16.7, 77.7, 17.7, 88.7, 19.0, 101.8, 21.0]
Run Code Online (Sandbox Code Playgroud)
它实际上是一系列二维点的一维表示.偶数索引值是x值,奇数值是y.
我现在希望转换A成
B=[(9.6, 7.9), (19.4, 13.3), (31.0, 16.1), (44.3, 16.4), (55.7, 16.5), (66.6, 16.7), (77.7, 17.7), (88.7, 19.0), (101.8, 21.0)]
Run Code Online (Sandbox Code Playgroud)
什么是最Python的方式这样做的?
我有一个10018x3矩阵,其中每一行代表一个特定(x, y)坐标的测量.也就是说,第一列包含所有x值,第二列包含所有值,y第三列包含所有测量值.
我现在想绘制测量的热图.我该怎么办?
我的尝试,虽然可能是愚蠢的,但是这样做scatter3(x, y, z),这让我知道了

虽然我可以看到这种趋势,但我所希望的却是这样.

假设我有
A = [1 2 3 nan 5];
Run Code Online (Sandbox Code Playgroud)
如果我做
plot(1:5, A, 'o-');
Run Code Online (Sandbox Code Playgroud)
我将有蓝色部分如下.

如何实现红色部分?
我很抱歉没有在第一次拍摄中直截了当,但是不希望有助于跳过这些值的isnan()方法,因为我需要绘制许多这些线,其中一些线NaN在某些随机位置有缺失值().所以我必须保持每一行的x轴一致.这就是为什么我不能简单地跳过NaN.
在MATLAB中,我有一个以.mexa64.结尾的MEX文件.也就是说,它适用于Linux 64位.
现在,我希望在Mac MATLAB中调用该函数,这需要.mexmaci64.我该如何进行转换?可能吗?
我有一个"几乎对称"的矩阵,我希望在MATLAB中对称化.例如,我希望对称化
>> A = [0 0 1; 2 0 3; 0 3 0]
A =
0 0 1
2 0 3
0 3 0
Run Code Online (Sandbox Code Playgroud)
成
>> B
B =
0 2 1
2 0 3
1 3 0
Run Code Online (Sandbox Code Playgroud)
安全假设是对角线条目A全部为零,"要改变的位"总是如此0.例如,我改变了A(1, 2),A(3, 1)在上面的例子中,两个位置的原始值都是0.
基于@ Photon评论(感谢Photon!)的最佳尝试是
>> C = -0.5*(A.'.*A~=0)+1;
>> B = (A+A.').*C
B =
0 2 1
2 0 3
1 3 0
Run Code Online (Sandbox Code Playgroud)
是否有更好(更有效或更快)的方法来实现这一目标?
在我看来,CGAL文档没有很好的文档记录.我完全迷失了如何在Python中使用他们的包.
我已经CGAL-4.3在我的Windows上安装了,我试着这样做
In [233]: """ python 2.4"""
.....: from CGAL.Alpha_shapes_2 import *
.....: from CGAL.Triangulations_2 import Delaunay_triangulation_2
.....: from CGAL.Kernel import *
.....: from ShapeHelper import *
.....: import numpy as np
.....: import sys
Run Code Online (Sandbox Code Playgroud)
错误信息说
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-233-4807de38949d> in <module>()
1 """ python 2.4"""
----> 2 from CGAL.Alpha_shapes_2 import *
3 from CGAL.Triangulations_2 import Delaunay_triangulation_2
4 from CGAL.Kernel import *
5 from ShapeHelper import *
ImportError: No module named …Run Code Online (Sandbox Code Playgroud)