小编Nic*_*las的帖子

VBA中"end"和"exit sub"之间有什么区别?

在VBA中,有时我们想在某些条件成立后退出程序.但我使用endexit sub

excel vba excel-vba

21
推荐指数
1
解决办法
9万
查看次数

C-contiguous和Fortran连续数组操作之间的性能

下面,我比较了处理C连续和Fortran连续数组之间的和运算时的性能(C vs FORTRAN内存顺序).我设置axis=0确保数字按列添加.我很惊讶Fortran连续数组实际上比它的C对应慢.Fortran连续数组是否在列中具有连续的内存分配,因此在列式操作方面更好?

import numpy as np
a = np.random.standard_normal((10000, 10000))
c = np.array(a, order='C')
f = np.array(a, order='F')
Run Code Online (Sandbox Code Playgroud)

在Jupyter笔记本中,运行

%timeit c.sum(axis=0)
10 loops, best of 3: 84.6 ms per loop
Run Code Online (Sandbox Code Playgroud)
%timeit f.sum(axis=0)
10 loops, best of 3: 137 ms per loop
Run Code Online (Sandbox Code Playgroud)

python numpy scipy multidimensional-array

10
推荐指数
2
解决办法
1328
查看次数

在VBA中使用日期上的IsNumber函数的不同结果

假设单元格A1有一个日期:1/1/2017.

然后下面的宏给出了不同的结果:

  • 第一 - 真的
  • 第二 - 错.

这种差异的原因是什么?我该如何正确使用IsNumeric?

Sub TestIsNumber()
    MsgBox WorksheetFunction.IsNumber(Cells(1, 1))
    MsgBox WorksheetFunction.IsNumber(Cells(1, 1).Value)
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba excel-formula

7
推荐指数
1
解决办法
800
查看次数

是否有像VBA函数HasFormula一样的IsNumeric范围版本?

我知道range().HasFormula只有当范围中的每个单元格都有公式时才返回True,否则它可以返回False或Null(混合时).但是没有像HasNumber这样的功能.因此,要检查范围是否仅包含数字,我必须这样做

Dim all_numeric As Boolean
all_numeric = True
For Each cell In Range()
    If (Not IsNumeric(cell)) Or IsEmpty(cell) Then 'I also want to get rid of empty cell
        all_numeric = False
        Exit For
    End If
Next cell
Run Code Online (Sandbox Code Playgroud)

此外,有WorksheetFunction.IsNumber类似的东西,但仍然需要循环范围.如果范围包含大量数字,我不确定这是否会非常慢.我想知道是否有更好的方法来检查VBA中范围对象的数值.

excel vba excel-vba

6
推荐指数
1
解决办法
1645
查看次数

Python 的 glob 模块中的 Unix glob 样式模式是否区分大小写?

我不熟悉全局模式​​样式,根据本教程,它说glob区分大小写。

然而,当我使用globPython中的模块时,它似乎glob.glob('./M*')返回glob.glob('./m*')相同的结果,也就是说,Pythonglob是区分大小写,见下文(我将结果一起打印以确保它们是串联执行的),

在此输入图像描述

如何区分大写和小写?为此我是否必须诉诸字符串方法?

python unix glob python-3.x

6
推荐指数
1
解决办法
1492
查看次数

我的算法的时间复杂度计算

给定一个字符串,找到其中的第一个非重复字符并返回其索引.如果它不存在,则返回-1.您可以假设该字符串仅包含小写字母.

我将定义一个跟踪字符出现的哈希.从左到右遍历字符串,检查当前字符是否在哈希中,如果是,则继续,否则在另一个循环中遍历字符串的其余部分以查看当前字符是否存在.如果不是,则返回索引并更新哈希(如果存在).

def firstUniqChar(s):

    track = {}
    for index, i in enumerate(s):
        if i in track:
            continue
        elif i in s[index+1:]: # For the last element, i in [] holds False
            track[i] = 1
            continue
        else:
            return index
    return -1

firstUniqChar('timecomplexity')
Run Code Online (Sandbox Code Playgroud)

算法的时间复杂度(平均值和最差值)是多少?

python algorithm

5
推荐指数
2
解决办法
285
查看次数

在 Python 中,如何在 os.path.join() 函数中指定目录分隔符?

我尝试了如下代码,尝试将目录分隔符更改为正斜杠,/但仍然卡在反斜杠中\。文档说该函数使用 directory separator 连接路径os.sep,但这在我的情况下不起作用。

import os
os.sep = '/'
print(os.sep)
print(os.path.join('.', 'path'))
Run Code Online (Sandbox Code Playgroud)

python operating-system

4
推荐指数
2
解决办法
1791
查看次数

为什么在以下VBA代码中使用Object类型而不是Sheet类型用于变量声明?

如果a Chart已激活,则以下代码将用户返回到旧工作表,并显示Chart返回之前包含的数据点数.我想知道为什么变量Sh被定义为Object而不是Sheet在两个事件处理程序中.变量也一样OldSheet.

Dim OldSheet As Object

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Set OldSheet = Sh
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim Msg As String
    If TypeName(Sh) = "Chart" Then
        Msg = "This chart contains "
        Msg = Msg & ActiveChart.SeriesCollection(1).Points.Count
        Msg = Msg & " data points." & vbNewLine
        Msg = Msg & "Click OK to return to " & OldSheet.Name
        MsgBox Msg
        OldSheet.Activate
    End …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

4
推荐指数
1
解决办法
476
查看次数

在Python中,None是一个独特的对象吗?

在我的测试代码中,为什么print元组和None 的结果不同?似乎a,b指向同一个对象None,但c,d指向不同的对象,尽管它们的值相同(都等于(a,b)).

我知道is关键字检查后面的对象,而不仅仅是比较值==.在这里我使用元组因为我认为元组是不可变的,所以至少它不是对象是可变的还是不可变的.

但是为什么变量a,b不会创建并指向两个不同的None对象,如c,d做元组?

a=None
b=None
c=(1,2)
d=(1,2)
print(a is b)
print(c is d)
Run Code Online (Sandbox Code Playgroud)

python object nonetype

3
推荐指数
2
解决办法
1028
查看次数

关于C++中的动态内存分配

假设我通过p1以下方式进行动态内存分配,

int* p1 = new int;
*p1 = 1;
Run Code Online (Sandbox Code Playgroud)

我知道引用的内存p1可以通过使用释放

delete p1;
p1 = nullptr;
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有另一个指针p2指向1,我可以delete这个指针,以释放内存?指针会发生什么p1?此外,什么是之间的关系p1p2本质?例如,

int* p1 = new int;
*p1 = 1;
int* p2 = p1;
// Can I delete p2 like this? And what would happen to p1?
delete p2;
p2 = nullptr;
Run Code Online (Sandbox Code Playgroud)

c++ pointers dynamic-allocation

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

在 C++ 中使用 std::bind 和 std::function 时出错

我尝试在多元函数上尝试我的牛顿方法片段并使用std::bindstd::function。但我被一个错误困住了

错误:请求从 'std::_Bind_helper&, int>::type {aka std::_Bind, int))(double, double, double)>}' 转换为非标量类型 'std::function'

此错误消息是什么意思,我应该如何修复我当前的代码?

#include <iostream>
#include<functional>
#include<cmath>

double newton(std::function<double(double)> F, std::function<double(double)> f,
              double x=0, int maxiter=1000, double epsilon=0.001)
{
    int n = 0;
    while((n < maxiter) && (fabs(F(x)) > epsilon))
    {
        x = x - F(x) / f(x);
        n++;
    }
    return x;
}

// I'd like to fix x and z at 1 and 2 and find root for y
double ftest(double x, double y, double z) …
Run Code Online (Sandbox Code Playgroud)

c++ newtons-method stdbind c++11 std-function

2
推荐指数
1
解决办法
2974
查看次数

numpy.ufunc.identity 的用法

我想知道r = ufct.identity在 function 里面是什么行ufunc_reduce。它只是像初始化操作一样r = 0吗?

a = np.array([2,3,4,5])
b = np.array([8,5,4])
c = np.array([5,4,6,8,3])

def ufunc_reduce(ufct, *vectors):
    vs = np.ix_(*vectors)
    r = ufct.identity
    for v in vs:
        r = ufct(r,v)
    return r

ufunc_reduce(np.add,a,b,c)
Run Code Online (Sandbox Code Playgroud)

python numpy

2
推荐指数
1
解决办法
208
查看次数