我正在运行一个脚本,但它花了太长时间,所以我想终止脚本.然而,它已经计算了很多我理想情况下不想丢弃的数据.是否有ctrl-C将内部函数变量保存到工作区的替代方法?
理想情况下,我正在寻找一个Matlab键盘快捷键ctrl-C,但如果真的无法完成,也许有一种方法可以在我的函数脚本中执行此操作.知道如何让我的脚本做出反应ctrl-C,或者我可以取消的GUI元素,然后通过我的脚本保存变量?
我发现了一些类似的问题,但这些问题没有回答我的问题:
不同的问题,类似的答案:
编辑:
这个问题是不同的,因为提问者的问题是不同的:他们想知道错误在哪里,在我的案例中,Matlab已经说过了.我只想在工作内存中保留所有数据.
我的目标是在Windows中拥有一个扩展的桌面.Linux只使用我的第二台显示器作为镜像,这是没用的.我在google和SO上搜索了很多东西以获得正确的方法.我希望linux将我的显示器用于一个扩展桌面,而不是镜像.到目前为止,我还没有发现如何做到这一点.任何帮助表示感谢,谢谢.
我正在尝试安装python.或者实际上,现在已经安装和卸载了几次.我正在使用pythonxy与spyder IDE(我习惯使用matlab是我想使用spyder的原因).3.3.2 python甚至不会在我的win8机器上用spyder开始,所以现在我安装了2.7版本.
Spyder现在启动,但在启动时我得到'import sitecustomize'失败了吗?在我的控制台和python中不会执行我输入的任何命令.在错误之后,startupscript继续不做任何事情,我不能再做任何事了.错误告诉我用-v附录启动python,输出如下.
我用谷歌搜索了这个错误,它给了我两个可能的解决方案:我应该编辑python.rb https://github.com/mxcl/homebrew/commit/10ba101c323f98118b427f291e15abc5b3732991 或者我应该将此(在那里的最后一篇文章中的附件)应用到sitecustomize https:/ /code.google.com/p/spyderlib/issues/detail?id=771
应用diff文件没有帮助,正如mata在下面解释的那样,在安装过程中使用.rb文件,因此不适用于我的问题.
所以我的问题是:有人知道如何从经验中修复这个错误吗?
错误:
'import sitecustomize' failed; use -v for traceback
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Run Code Online (Sandbox Code Playgroud)
追溯:
C:\Python27\lib\site-packages\spyderlib\pil_patch.pyc matches C:\Python27\lib\site-packages\spyderlib\pil_patch.py
import spyderlib.pil_patch # precompiled from C:\Python27\lib\site-packages\spyderlib\pil_patch.pyc
Traceback (most recent call last):
File "C:\Python27\lib\site.py", line 498, in execsitecustomize
import sitecustomize
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 174, in <module>
os.environ["SPYDER_AR_STATE"].lower() == "true")
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\monitor.py", line 146, in …Run Code Online (Sandbox Code Playgroud) 从nifti标题中可以轻松获得仿射矩阵.但是在DICOM标题中有很多条目,但我不清楚哪些条目描述了哪个参数转换到哪个新空间.
我找到了一个非常详细的教程,但我找不到他们引用的条目.此外,该教程是为Python而不是Matlab编写的.它列出了这些标题条目:
Entries needed:
Image Position (0020,0032)
Image Orientation (0020,0037)
Pixel Spacing (0028,0030)
Run Code Online (Sandbox Code Playgroud)
如果我用dicominfo()加载标题,我无法找到这些.也许它们是特定于供应商的,或者它们可能嵌套在结构中的某个位置.另外,它们引用的Pixel Spacing包含两个值,因此我认为他们的教程仅适用于单个切片转换.将需要更多关于切片厚度和切片间隙的标头条目.计算z坐标的正确变换也不容易.
有人知道如何找到这些条目或如何使用DICOM标题中的其他信息将图像坐标转换为患者坐标?我用Matlab.
我有一个3D体积和一个2D图像和两者之间的近似映射(没有skwewing的仿射变换,已知缩放,旋转和平移近似已知且需要拟合).因为此映射中存在错误,我想进一步将2D图像注册到3D卷.我之前没有为注册目的编写代码,但由于我找不到任何程序或代码来解决这个问题,我想尝试这样做.我认为注册标准是优化互信息.我认为这也适用于此,因为两幅图像之间的强度不相等.所以我认为我应该为转换创建一个函数,一个用于交互信息的函数和一个用于优化的函数.
基于一篇文章,我确实在两年前的mathworks 线程中找到了一些Matlab代码.OP报告她设法让代码工作,但我不知道她是怎么做到的.另外在matlab的IP包中有一个实现,但我没有那个包,似乎没有相应的八度.SPM是一个使用matlab并已实现注册的程序,但不能处理2d到3d注册.在文件交换机上,存在使用互信息登记两个2D图像的强力方法.
她所做的是将多平面重建函数和相似/误差函数传递给最小化算法.但细节我不太明白.也许最好重新开始:
load mri; volume = squeeze(D);
phi = 3; theta = 2; psi = 5; %some small angles
tx = 1; ty = 1; tz = 1; % some small translation
dx = 0.25, dy = 0.25, dz = 2; %different scales
t = [tx; ty; tz];
r = [phi, theta, psi]; r = r*(pi/180);
dims = size(volume);
p0 = [round(dims(1)/2);round(dims(2)/2);round(dims(3)/2)]; %image …Run Code Online (Sandbox Code Playgroud) matlab geometry transformation image-processing image-registration
这个问题很像: if/else在Python的列表理解中? 和 Python中的简单语法错误,否则dict理解.但我仍然不明白我在这里犯了什么错误:
[i if i!=0 for i in range(2)]
^
syntax error
Run Code Online (Sandbox Code Playgroud)
我只希望列表中的稀疏度为非零的条目.
我已经计算了一些结果,它们是64x64数组的形式.每个阵列都是在另一个阵列之后创建的.我想一个接一个地显示这些数组,就像动画一样.我尝试了很多方法,但没有工作.我非常沮丧,有关动画的SO问题无法帮助我实现这一目标.这不是我第一次尝试这个,每次我的结果是相同的:我从来没有得到这个工作.
我试过的方法:
我目前的代码:
fig, ax = plt.subplots()
def animate(i):
return imagelist[i]
def init():
fig.set_data([],[])
return fig
ani = animation.FuncAnimation(fig, animate, np.arange(0, 19), init_func=init,
interval=20, blit=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这里imagelist是我上面提到的数组列表(长度20,0到19).我的问题是如何让这个工作?
我已经阅读了很多奇怪的语法错误问题,并且还没有看到我的问题,我真的很茫然.我正在做一些功课,截止日期越来越近,这个错误让我无法摆脱:
def create_voting_dict():
strlist = [voting_data[i].split() for i in range(len(voting_data))]
return voting_dict = {strlist[h][0]:[int(strlist[h][g]) for g in range(3, len(strlist[h]))] for h in range(len(strlist))}
Run Code Online (Sandbox Code Playgroud)
这让我错误:
return voting_dict = {strlist[h][0]:[int(strlist[h][g]) for g in range(3, len(strlist[h]))] for h in range(len(strlist))}
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
当我在程序中定义了voting_dict时没有发生这个错误,但我需要全局定义它,所以我在返回后把它放入然后我得到了错误.一直在计算括号,但这似乎不是问题.
我确信当我看到问题时很容易,但我只是没有看到它.谢谢你的帮助.
*投票数据是一个包含字符串的列表,我制作了拆分字符串并创建字典的过程