这给出了预期的结果
x = random.rand(1) + random.rand(1)*1j
print x.dtype
print x, x.real, x.imag
Run Code Online (Sandbox Code Playgroud)
这很有效
C = zeros((2,2),dtype=complex)
C[0,0] = 1+1j
print C
Run Code Online (Sandbox Code Playgroud)
但如果我们改变它
C[0,0] = 1+1j + x
Run Code Online (Sandbox Code Playgroud)
我得到"TypeError:无法将复数转换为浮点数".
如果我们现在省略显式dtype = complex,我得到"ValueError:设置一个带序列的数组元素".
有人可以解释发生了什么,以及如何做到这一点没有错误?我迷路了.
在尝试时push,我得到一个致命的错误,因为git试图包含一个对GitHub来说太大的文件.git rm file失败,因为该文件不存在(它已存在,但不再存在).Git似乎拒绝承认该文件已经消失.
我该怎么办?
有关信息,我得到的错误消息是:
remote: error: GH001: Large files detected.
remote: error: Trace: dbbfb79f51f133c90dfd58730a4ab624
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File [filename] is 385.65 MB; this exceeds GitHub's file size limit of 100 MB
To https://github.com/[---].git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/[---].git'
Run Code Online (Sandbox Code Playgroud)
如果上面的内容似乎无法实现,那么关于如何在这里完成所有git相关内容并使用我们在备份目录中保留的代码从头开始设置的说明将会很棒.我们真的没有时间搞乱git ......
(更新:问题解决了.这一切都归结为我的一个愚蠢的错字,导致我写错记忆的部分,这反过来导致一些指针指向某个不受限制的地方.)
所以,我正在学习一门涉及一些编程的课程,而且我们基本上已经被抛入了C池的深处.我以前用其他语言编程,所以它并不是全新的,但我没有一套可靠的工具来调试我的代码,当众所周知的屎袭击了粉丝.
基本上,我有以下几点
int nParticles = 32;
int nSteps = 10000;
double u[nParticles], v[nParticles];
for (i = 0; i < nSteps; i++) {
...
for (j = 0; j < nParticles; j++) {
u[j] = 0.001 * v[j];
}
...
}
Run Code Online (Sandbox Code Playgroud)
作为一个更大的程序的一部分,我正在得到分段错误.为了查明问题,我添加了一堆
printf("foo\n");
Run Code Online (Sandbox Code Playgroud)
并且最终我发现我已经迈出了步骤i = 209,并且j = 31在发生分段故障之前出现了粒子.
有点谷歌搜索后,我意识到有一个名为工具gdb,并与额外的printf在那里,但在进行bt中gdb告诉我,现在是printf该段错误.但请记住,我在添加诊断printfs之前也得到了段错误.
这对我来说没什么意义.我该如何从这里开始?
更新:
valgrind 给我以下
==18267== Invalid read of size 8
==18267== at 0x400EA6: main (in [path redacted]) …Run Code Online (Sandbox Code Playgroud)