从矩阵中读取一列数据的C程序
我有一个文本文件,如下所示:从矩阵中读取一列数据的C程序,c,matlab,C,Matlab,我有一个文本文件,如下所示: a 1 2 3 4 b 5 6 7 8 c 9 1 2 3 d 4 5 6 7 我需要C代码根据提供的输入从文本文件中读取一列。例如,如果我将1传递给C代码,我需要输出为第一列的1D数组: 1 5 9 4 如果我将3传递给代码,它将输出第3列: 3 7 2 6 我使用coder.ref将输入从MATLAB传递到C代码 我不会为您编写代码,因此这里有一些提示: 这里有几个选项,最简单的是: 读取文件中的所有数据,然后仅显示所需的列 您可以使用temp=fget
a 1 2 3 4
b 5 6 7 8
c 9 1 2 3
d 4 5 6 7
我需要C代码根据提供的输入从文本文件中读取一列。例如,如果我将1传递给C代码,我需要输出为第一列的1D数组:
1
5
9
4
如果我将3传递给代码,它将输出第3列:
3
7
2
6
我使用
coder.ref
将输入从MATLAB传递到C代码 我不会为您编写代码,因此这里有一些提示:
这里有几个选项,最简单的是:
读取文件中的所有数据,然后仅显示所需的列
您可以使用temp=fgetc(FILE*stream)
浏览该文件
然后做一些类似的事情
if(temp='')j++代码>和if(temp=='\n')i++代码>,
i
是矩阵的行,j
是矩阵的列
最后,您需要一个函数来将所有temp
放在一起,并将字符串(字符数组)转换为整数。如果您在Unix/Linux系统上,您可以使用命令行工具(例如cut
)预处理文件以提取列
假设您的矩阵位于一个名为data.txt的文件中。然后您可以执行以下操作:
% cat data.txt
a 1 2 3 4
b 5 6 7 8
c 9 1 2 3
d 4 5 6 7
% cut -d " " -f 2 < data.txt
1
5
9
4
%cat data.txt
a 1234
b 5 6 7 8
c 9 1 2 3
d 4 5 6 7
%剪切-d”“-f2
-d选项指定文本文件中各列之间的分隔符。-f指定要剪切的列。您可以编写一个shell脚本,它可以获取列号并为您运行cut
。不要感谢我们,我们可能不会为您编写代码。请看一看,我们是来帮助您的,不是免费提供代码开发。您可以读取整个文件并将其缓冲到一个数组中,然后显示单个列!太简单了:-)嗨,谢谢你的帮助。但是我对c完全是新手,而且大部分的东西我都不懂。谢谢你的意见,伙计。