这个问题可能与您在这里阅读的内容完全不同-我希望它可以提供一个有趣的挑战。
本质上,我有一种算法,该算法使用5个(或更多)变量来计算单个值,称为outcome 。现在,我必须在没有内存限制但具有非常苛刻的处理约束的嵌入式设备上实现此算法。
因此,我想运行一个计算引擎,为每个变量的20个不同值计算outcome并将此信息存储在文件中。您可能会认为这是一个5维(或更大)的矩阵或5维(或更大)的数组,每个维的长度为20个条目。
在任何现代语言,填充这个数组很简单,只要具有5(或更多)嵌套for环路。棘手的部分是,我需要将这些值转储到一个文件中,然后可以将该文件放置到嵌入式设备上,以便该设备可以将其用作查找表。
现在
的问题是:
- 哪种格式可以存储数据?
- 哪些程序(MATLAB,C#等)可能最适合计算数据?
- 必须使用C#在设备上导入数据-鉴于您对#1的回答,是否可以这样做?
编辑:是否可以从我的查找表文件中读取而不将整个文件读取到内存中?您能解释一下如何在C#中完成吗?
回答:
我也会评论1和3。最好使用固定宽度的输出文件而不是CSV。根据输出数量的不同,这可能比CSV占用更多或更少的空间。但是,它通常可以很好地用于查找表,因为可以在不读取整个文件的情况下确定在固定宽度的数据文件中查找的位置。这对于查找表通常很重要。
与CSV一样,固定宽度的数据读取和写入都很简单。某些面向数学的语言可能提供较差的字符串和二进制操作功能,但无论如何,在导入步骤中将数据转换为固定宽度应该确实很容易。
2号很难回答,尤其是在不知道您正在计算哪种算法的情况下。 Matlab和类似的程序在某些类型的计算上趋向于出色,并且通常内置许多东西使其变得更容易。就是说,内置于此类语言中的许多数学资料都可以库的形式用于其他语言。
更多&回答...