小编Bre*_*ick的帖子

如何防止浮动不精确影响numpy.arange?

因为numpy.arange()用于ceil((stop - start)/step)确定项目的数量,所以小的浮点精度(stop = .400000001)可能会向列表中添加一个意想不到的值。

例子

第一种情况不包括停止点(拟)

>>> print(np.arange(.1,.3,.1))
[0.1 0.2]
Run Code Online (Sandbox Code Playgroud)

第二种情况包括停止点(非预期)

>>> print(np.arange(.1,.4,.1))
[0.1 0.2 0.3 0.4]
Run Code Online (Sandbox Code Playgroud)

numpy.linspace()解决了这个问题,np.linspace(.1,.4-.1,3)。但要求您知道步骤数。np.linspace(start,stop-step,np.ceil((stop-step)/step))导致相同的不一致。

如何在float不知道范围内元素数量的情况下生成可靠范围?

极端情况

考虑我想要生成未知精度的浮点索引的情况

np.arange(2.00(...)001,2.00(...)021,.00(...)001)
Run Code Online (Sandbox Code Playgroud)

python floating-point numpy python-2.7

6
推荐指数
2
解决办法
2396
查看次数

在不设置输出变量的情况下强制函数调用的输出数

对于任何函数,我能够通过明确定义我期望的输出数来指示要返回的变量 [out1,out2,...,outn] = ...

编辑:能够最大化潜在的输出数量也很有用

示例问题

以下代码完全符合预期(是的,它是多余的myArray(IND) = 1;)

[I,J] = ind2sub(size(myArray),IND)
myArray(I,J) = 1;
Run Code Online (Sandbox Code Playgroud)

当我尝试直接传递函数参数时,我得不到我想要的结果

myArray(ind2sub(size(myArray),IND)) = 1;
Run Code Online (Sandbox Code Playgroud)

我有意义的myArray(I) = 1;时候得到了myArray(I,J) = 1;

如何在不明确定义输出参数的情况下指示返回多少输出变量?

我希望eval()家庭中的某些功能或某些类型转换[],{},(:), etc.可以解决问题,但我没有看到任何文档或者让它们中的任何一个工作.

matlab

3
推荐指数
1
解决办法
58
查看次数

标签 统计

floating-point ×1

matlab ×1

numpy ×1

python ×1

python-2.7 ×1