使用xls、csv或其他类型的文件在Objective-C中创建浮点数组

使用xls、csv或其他类型的文件在Objective-C中创建浮点数组,objective-c,excel,Objective C,Excel,大家好,我对整个编程非常陌生,但我真的很喜欢。对不起,如果我没有足够的细节 所以,我有很多excel文件,其中有数字列(我不能发布图片,因为我还没有10个声誉) 我已经搜索了几天,但我还没有找到答案。我想知道是否有一种方法,我可以从文件中创建多个数组-我知道我们不能像matlab那样生成矩阵-每个列中都有数字,即 float numbers[] = {1.3, 1.2, 4.2}; 或者创建带有数字的excel文件(iWork版本的excel),然后将数字文件导入到xcode项目中,并从中创

大家好,我对整个编程非常陌生,但我真的很喜欢。对不起,如果我没有足够的细节

所以,我有很多excel文件,其中有数字列(我不能发布图片,因为我还没有10个声誉)

我已经搜索了几天,但我还没有找到答案。我想知道是否有一种方法,我可以从文件中创建多个数组-我知道我们不能像matlab那样生成矩阵-每个列中都有数字,即

float numbers[] =  {1.3, 1.2, 4.2};
或者创建带有数字的excel文件(iWork版本的excel),然后将数字文件导入到xcode项目中,并从中创建数组

我的问题是大约有一千个数字,所以一个接一个地复制它是非常耗时的


抱歉,如果这让人困惑,请告诉我是否还有其他信息需要添加。

您的意思是从.csv文件生成objective-C源代码?一种方法是使用Perl之类的脚本语言:

#!/usr/bin/perl
use warnings;
use strict;

my @numbers = ();
while (<>) {
    chomp;
    push @numbers, $_;
}

my $numbers = join(', ', @numbers);
print qq(float numbers[] = {$numbers};\n);
然后通过管道将其传输到脚本(本例中为foo.pl):

它将输出以下内容:

float numbers[] = {1.5, 2.5, 18842984, -4};

这就是你想要做的吗?

有两种简单的方法可以做到这一点,即使你是初学者

打开MS Excel,输入值,将Excel文档另存为.CSV文件。 然后抓起一个像这样的objective-CSV转换器,你就完成了

第二种方法是,您可以声明一个数字数组(例如,“float matrix[5][5];”),然后按照您认为合适的方式使用它

我在不同的项目中都提出了我的建议,两种方法都很好。我使用了第一种方法来创建一个15页的excel文档,我需要在我的应用程序中使用,第二种方法用于另一个应用程序,我需要不断更改2d数组的内容。
声明“浮动矩阵[5][5]”后,这是一个5x5矩阵(也称为表)你可以随意使用它。第一个数组可以是列,第二个数组可以是行。

你有什么困难?创建浮点数组?读取文件?缩短读取数千个观察值的时间?我真的不知道你真正的问题是什么。@BlueTomato谢谢你的回答,我不知道如何创建包含文件中所有数字的数组。我也不知道如何读取文件以提取数字您的选择基本上是CSV(逗号分隔值)、XML和JSON。如果数据来自Excel,则CSV最有意义,因为Excel将生成这些数据。(如果您愿意,您可以在文本编辑器中打开CSV或JSON文件,并将数据直接复制/粘贴到Objective-C array init语句中)好的,我不确定代码的意思,但我会尝试。我在哪里复制粘贴pearl?在哪里运行“cat foo.CSV|perl foo.pl”?@KChockey-Perl是一种内置于Unix系统和Mac OS上的脚本语言。如果您在Windows上,您可能需要安装它,但它是免费的。脚本和.csv都是文本文件。您可以在包含这两个文件的目录中的命令行中键入命令,然后它将输出结果。我给出的示例适用于Linux或者OSX;它表示“将foo.csv的内容输出到foo.plperl脚本”。谢谢,但Confusedder所说的对我的案例更有效。不过,我会再试一次,谢谢!@slinberg海报问如何将excel工作表导入到他/她的iOS项目中,这个答案建议使用类似Perl的脚本语言。我听说过Perl的很多优点,但有更简单和更好的方法完成海报请求的方法比创建一个Perl脚本要好。因此,一旦我下载了该文件,我如何使用xcode向该文件添加路径?只需将CSV文件拖动到xcode项目中的a文件夹中。我创建了一个名为“Resources”的文件夹(或者它可能已经存在)或者我在我的xcode项目中创建了一个名为“CSVFiles”的新文件夹,你可以直接从桌面拖放到xcode中的文件夹中。KChockey:还有其他CSV解析器比我提到的那个更容易使用。我找了大约30分钟,才找到一个我喜欢且易于使用的。我最终修改了解析r代码来做一些我想让它做的自定义行为。因此,如果CSV解析器不容易理解,那么github上有不止几个。当然,CSV非常简单,人们可以编写自己的解析器。基本上,它只是调用
组件通过字符串分离:
@Hot-Licks,当您需要处理所有问题时,它并不是那么简单各种字符,例如带有特殊字符的空格,以及特殊字符,例如“/”,但如果它只是浮点值,那么我同意你的看法。
cat foo.csv | perl foo.pl
float numbers[] = {1.5, 2.5, 18842984, -4};