Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从矩阵中读取一列数据的C程序_C_Matlab - Fatal编程技术网

从矩阵中读取一列数据的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完全是新手,而且大部分的东西我都不懂。谢谢你的意见,伙计。