我有一个文本文件,如下所示:
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代码。
答案 0 :(得分:1)
我不会为你编写代码,所以这里有一些提示:
这里有几个选项,最简单的选择是:
从文件中读取所有数据,然后仅显示所需的列。
您可以使用temp = fgetc(FILE *stream)
来浏览该文件
做点什么,
if(temp == ' ') j++;
和if(temp == '\n') i++;
,
i
是行,j
是矩阵的列。
最后,您需要一个函数将所有temp
放在一起,并将您的字符串(字符数组)转换为整数。
答案 1 :(得分:0)
如果您使用的是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
-d选项指定文本文件中列之间的分隔符。 -f指定要删除的列。您可以编写一个可以获取列号的shell脚本并为您运行cut
。