我习惯用它来开始我所有的MATLAB脚本clear all; close all; clc
.虽然它是一个非常有用的线,但只要它执行,它就会消除我的所有断点.有一种简单的方法可以避免这种情况吗?
几个星期前,为了涉足IPython笔记本,我从http://continuum.io/downloads下载并安装了Anaconda .安装中存在问题(因为它是32位或64位 - 我记不住的一个细节),我解决了这个问题但卸载了我的第一次尝试并安装了另一个版本.然后我开始创建我的笔记本有一些练习题.
目前我可以ipython notebook
在命令提示符下运行,笔记本运行得非常好.但是没有提到系统是笔记本树(或附近的标签)中的32位还是64位.
我通常会使用命令提示符对这些问题进行排序.但是,命令conda --version
和ipython --version
刚生成各自的版本号,而不是我要找的信息.
我的操作系统是,Win7x64
但这并没有阻止我在过去安装32位软件.
阅读fmark
回答问题的答案什么是Python中的"命名元组"?我看到那里给出的示例具有相同的名称和引用,即该单词Point
在以下语句中出现两次:
Point = namedtuple('Point', 'x y')
所以我去了原始参考:
https
://docs.python.org/2/library/collections.html#collections.namedtuple
在这里我又找到了两个例子:
EmployeeRecord = namedtuple('EmployeeRecord', 'name, age, title, department, paygrade')
Color = namedtuple('Color', 'red green blue')
Run Code Online (Sandbox Code Playgroud)
理想情况下,Python中不会重复单词.例如,整行(对于Point
示例)可以替换为以下内容:
namedtuple('Point', 'x y')
Run Code Online (Sandbox Code Playgroud)
要么
Point = namedtuple('x y')
Run Code Online (Sandbox Code Playgroud)
当然,这是假设命名元组必须具有相同的名称和引用.所以我的问题是:什么时候它是可取的(如果允许的话),一个命名的元组应该有不同的名称和引用?我还没有看到一个例子.
编码时Matlab
,我可以选择使用快捷键Ctrl+ 智能缩进我的代码 i.是否有类似的选择Python
使用Notepad++
?
具体来说,我正在寻找以下问题的解决方案:
我想要块
line 1
line 2
line 3
Run Code Online (Sandbox Code Playgroud)
被转换为
line 1
line 2
line 3
Run Code Online (Sandbox Code Playgroud)
另外,我发现使用SE编辑器(键盘快捷键:Ctrl+ k)可以轻松实现这一点.我希望这个功能也适用于其他语言(根据我的经验,良好的缩进并没有杀死任何人,无论语言如何).
以下示例在Scipy
参考页面上提供integration
.
from scipy import integrate
N = 5
def f(t, x):
return np.exp(-x*t) / t**N
integrate.nquad(f, [[1, np.inf],[0, np.inf]])
Run Code Online (Sandbox Code Playgroud)
以下是我从IPython
笔记本上得到的错误(在cloud.sagemath.com上):
我的猜测是cloud.sagemath.com
没有升级到最新版本,Scipy
因此缺少模块nquad
.但是,我需要的只是两个变量的集成,因此想要使用dblquad
已经在云上可用的变量.
因此,我修改了最后一行以适应dblquad
语法,如下所示:
但它仍然会出现错误:TypeError: 'int' object is not callable
.我的脚本中有什么错误?我已粘贴下面的整个错误消息:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-2d0c5cf05694> in <module>()
4 def f(t, x):
5 return np.exp(-x*t) / t**N
----> 6 integrate.dblquad(f,1, np.inf,0, np.inf)
/usr/local/sage/sage-6.2.rc0/local/lib/python2.7/site-packages/scipy/integrate/quadpack.pyc in dblquad(func, a, b, gfun, hfun, args, epsabs, epsrel) …
Run Code Online (Sandbox Code Playgroud) 一开始,我尝试过conda install dill
,conda
但无法在互联网上找到它。
然后我从这里下载了默认 IPython 目录中的.tgz
和.zip
文件:https :
//pypi.python.org/pypi/dill
之后我尝试了以下命令:
conda install dill-0.2b1.zip
conda install "C:\<rest_of_the_complete_path>\dill-0.2b1.zip"
对于.tgz
. 所有四次尝试都产生了错误:
No packages found matching:
我做错了什么?我正在尝试重复以下链接中给出的示例:http : //nbviewer.ipython.org/gist/minrk/5241793
编辑 1:我dill
通过运行.exe
来自https://pypi.python.org/pypi/dill的文件安装在我的系统上。这一步安装dill
在我的系统 python ( C:\Python27
) 上,但没有安装在我的 Anaconda Python 上。我假设这两个numpy
python是分开的,因为我可以在两者上导入常用模块(例如)——我通过的 pythoncmd
和我通过我的 IPython 笔记本访问的那个——但我dill
只能在我访问的 python 上导入cmd
而不是在我的 IPython 笔记本中。
我正在尝试使用Matlab优化工具箱优化设备设计(使用fmincon
精确的功能).为了快速了解我的观点,我提供了一个小变量集{l_m,r_m,l_c,r_c},它的起始值等于{4mm,2mm,1mm,0.5mm}.
虽然Matlab的特别推荐的规范化输入变量,我的教授建议我把这些变量正常化{l_m,r_m,l_c,R_C}的最大值.因此,变量现在将采用从0到1的值(而不是在l_m的情况下为3mm到4.5mm).当然,我必须修改我的目标函数,将其转换回正确的值,然后进行计算.
我的问题是:fmincon
如果输入变量是规范化的,那么优化函数是否要小心?由于正常化,期望改变绩效是否合理?需要考虑的是优化器如何改变变量,比如说l_m - 在一种情况下它可以将它从4mm改为4.1mm,而在另一种情况下它可以将它从0.75改为0.76.
python ×4
ipython ×3
matlab ×2
32bit-64bit ×1
anaconda ×1
breakpoints ×1
conda ×1
dill ×1
indentation ×1
namedtuple ×1
notepad++ ×1
numpy ×1
optimization ×1
quad ×1
scipy ×1
tuples ×1