小编Max*_*Max的帖子

大文本文件处理

我需要在Mathematica中实现延迟加载.我有一个600 MB的CSV文本文件,我需要处理.该文件包含大量重复记录:

1;0;0;13;6
1;0;0;13;6
..........
2;0;0;13;6
2;0;0;13;6
..........
etc.
Run Code Online (Sandbox Code Playgroud)

因此,我不想将它们全部加载到内存中,而是创建一个包含记录的列表以及在文件中遇到此记录的次数:

{{10000,{1,0,0,13,6}}, {20000,{2,0,0,13,6}}, ...}
Run Code Online (Sandbox Code Playgroud)

我找不到使用导入功能的方法.我正在寻找类似的东西

Import["my_file.csv", "CSV", myProcessingFunction]
Run Code Online (Sandbox Code Playgroud)

其中myProcessingFunction将一次获取一条记录并创建数据集.是否可以使用Import或任何其他Mathematica功能执行此操作?

import text-processing wolfram-mathematica

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

了解别人代码的工具和最佳实践

有时需要挖掘别人的代码,理解它并重构/修复它.所以我想知道你用什么工具/做法来做到这一点?它不是关于任何特定的语言或平台,而是一般的一些建议.
我自己发现在调试器下运行有问题的代码非常有用(如果可能的话),设置断点并逐步执行代码.
此外,我还使用了一些具有逆向工程功能的UML工具来展望全局.可视化对我来说非常好用.
有一个工具,我已经使用了很多:理解.它不是一个UML工具,但它有一堆代码可视化.例如,函数的控制流程图,它不是UML的一部分,但有时它非常有用.
我听说有时人们会为他们想要学习的代码编写测试,但它并没有为我工作.有时我想要理解的代码不是很容易测试.
还有其他工具,如分析器,依赖检查器,记录器等.有没有人使用它取得任何成功?如何?
首先使用的是什么?下一步是什么?

ide debugging code-analysis

5
推荐指数
1
解决办法
3072
查看次数

F#中的嵌套联合类型

有没有办法在F#中创建嵌套的联合类型?像这样的东西


type MainType =
    | A of
        | AA of int
        | AB of float
    | B of int   
Run Code Online (Sandbox Code Playgroud)

f# types

5
推荐指数
1
解决办法
816
查看次数

从 C# 调用 VBA 函数

是否可以调用一个 VBA 函数(在 Access 中),该函数从外部世界获取两个字符串参数(例如从 c# 中,但其他人也会这样做)?

c# vba

5
推荐指数
1
解决办法
8954
查看次数

数据挖掘算法比较

是否有任何数据挖掘算法比较?在性能,准确性和生成稳健模型所需的数据量方面进行比较.似乎套袋和助力等整体学习算法在这一刻被认为是最准确的.我没有任何具体问题需要解决.这只是一个理论问题.

algorithm data-mining

5
推荐指数
1
解决办法
7405
查看次数

在C#中创建接口实例

我正在使用C#中的MS Excel互操作,我不明白这个特定的代码行是如何工作的:

var excel = new Microsoft.Office.Interop.Excel.Application();
Run Code Online (Sandbox Code Playgroud)

其中Microsoft.Office.Interop.Excel.Application是INTERFACE,定义如下:

[Guid("000208D5-0000-0000-C000-000000000046")]
[CoClass(typeof(ApplicationClass))]
public interface Application : _Application, AppEvents_Event
{
}
Run Code Online (Sandbox Code Playgroud)

我认为当界面用CoClass属性修饰时会发生一些魔法,但是我们怎样才能用new关键字创建一个接口实例呢?它不应该生成编译时错误吗?

c# oop

5
推荐指数
0
解决办法
6299
查看次数

CPU 和 GPU 具有相同的代码库

有人有维护 CPU 和 GPU 单一代码库的经验吗?我想创建一个应用程序,在可能的情况下使用 GPU 进行一些持久计算,但如果目标计算机上不存在兼容的 GPU,则它只会使用常规 CPU 版本。如果我可以使用条件编译指令编写一部分代码,将其编译为 CPU 版本和 GPU 版本,那将非常有帮助。当然,CPU 和 GPU 上会有一些不同的部分,但我想将算法的精髓保留在一处。这有可能吗?

c gpgpu

5
推荐指数
1
解决办法
694
查看次数

从独立应用程序执行编码的UI测试

我发现了一些关于如何使用mstest实用程序执行代码UI测试的博客文章,但我需要从我的C#应用​​程序执行它们.我尝试了最简单的事情:我创建了一个控制台应用程序,添加了对它的引用

  • Microsoft.VisualStudio.TestTools.UITest.Logging.dll
  • Microsoft.VisualStudio.TestTools.UITest.Playback.dll
  • Microsoft.VisualStudio.TestTools.UITesting.dll

我尝试从我的应用程序调用UI测试方法.我收到以下错误:

The following is not a valid technology name: MSAA. To search for a control, you must specify a valid technology name.
Run Code Online (Sandbox Code Playgroud)

我尝试引用与UI测试相关的其他程序集,但错误保持不变.也许我应该添加到App.config以便能够运行测试?

c# coded-ui-tests

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

无法在监视窗口中使用重载运算符计算表达式

我在这里看到了与此问题相关的几个问题。但他们似乎都讨论了解决这个问题的一些 STL 特定技巧。这是问题的一个简单示例。假设我们使用一个类,它重载了一些运算符,例如 std::vector 重载 [] 运算符:

vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);

auto x = v[0];
Run Code Online (Sandbox Code Playgroud)

在这种情况下,当尝试计算调用重载运算符的表达式时v[0],VC++ 在中显示以下错误Watch Window

v[0] no operator "[]" matches these operands    
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是调试器无法确定参数的类型,因此我尝试评估v[(size_type)0]表达式,然后对该((intvector)v)[(size_type)0]表达式进行以下代码修改:

typedef vector<int> intvector;
intvector v;
Run Code Online (Sandbox Code Playgroud)

没有运气。我再次收到相同的错误消息。

这很奇怪,因为当我使用扩展(不确定这里的术语是否正确)形式的运算符调用时,它会起作用:v.operator[](0)。它似乎普遍适用,不仅适用于 STL 类,也适用于我自己的重载 [] 运算符的类。

按照我的理解,这两种形式v[0]v.operator[](0)应该是等价的,但 VC++ 似乎有不同的想法。他们真的不同吗?为什么 VC++ 调试器无法评估简短形式,但对“扩展”形式却没有问题?有没有办法解决?我非常习惯只复制一小段代码并在Watch Window.

c++ visual-c++ visual-studio-debugging visual-studio-2012

5
推荐指数
1
解决办法
921
查看次数

增加Date_Time日期解析不起作用

我正在尝试编写代码以使用Boost 1.55 Date_Time库解析日期时间字符串。但是,它始终会生成非日期时间的日期。

boost::gregorian::date d(2005, 6, 25);
boost::gregorian::date d2;
boost::gregorian::date_facet* facet(new boost::gregorian::date_facet("%Y %m %d"));
stringstream ss;
ss.imbue(std::locale(std::cout.getloc(), facet));

ss << d; string s = ss.str(); // s = "2005 06 25"
cout << s << endl;
    stringstream ss2(s);
ss2 >> d2; // not-a-date-time
cout << d2 << endl;
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的格式说明符,但没有帮助。我正在使用Visual C ++2013。我的代码有问题吗?

更新:

如果有任何区别,我的系统语言环境为俄语。

c++ boost

5
推荐指数
1
解决办法
352
查看次数