Matlab fopen,是否可以有一个数字文件名?

Matlab fopen,是否可以有一个数字文件名?,matlab,fopen,Matlab,Fopen,我有以下代码: ptol = [2, 4, 8, ...]; a = ptol(1) fid = fopen( a,'r'); 我需要打开一个文件,该文件由从ptol调用的号码决定,即如果ptol(1)=2,则fopen应打开文件2 目前我收到错误“无效文件名”。我该如何解决这个问题 下面的代码是我需要用来“加载”文件中的数据的代码,我正在努力将这些文件打开到一个矩阵中 fileName = strcat(num2str(a),'.ext'); file = fopen(fileName,

我有以下代码:

ptol = [2, 4, 8, ...];

a = ptol(1)

fid = fopen( a,'r');
我需要打开一个文件,该文件由从
ptol
调用的号码决定,即如果
ptol(1)
=2,则
fopen
应打开文件2

目前我收到错误“无效文件名”。我该如何解决这个问题

下面的代码是我需要用来“加载”文件中的数据的代码,我正在努力将这些文件打开到一个矩阵中

fileName = strcat(num2str(a),'.ext');
file = fopen(fileName,'r');

count = 1;

lines2skip = 4;

mat = zeros(29,872);

while ~feof(file)
    if count <= lines2skip
        count = count+1;
        [~] = fgets(file); % throw away unwanted line
        continue;
    else
        line = strtrim(fgets(file));
        mat = [mat ;cell2mat(textscan(line, '%f')).'];
        count = count +1;
    end
end
fileName=strcat(num2str(a),'.ext');
file=fopen(文件名为'r');
计数=1;
lines2skip=4;
mat=零(29872);
而~feof(文件)

如果count
a
是一个数字,我猜

因此,您需要指定一个与文件名对应的字符串。 这个文件有扩展名吗
num2str
strcat
应该起到神奇的作用

守则:

fileName = strcat(num2str(a),'.ext');
fid = fopen(fileName,'r');
请注意,
.ext
必须替换为实际的扩展名。如果使用的是
.txt
文件,则替换为
.txt


另外,检查文件的位置(您需要指定确切的路径)。

a
是一个数字,我猜

因此,您需要指定一个与文件名对应的字符串。 这个文件有扩展名吗
num2str
strcat
应该起到神奇的作用

守则:

fileName = strcat(num2str(a),'.ext');
fid = fopen(fileName,'r');
请注意,
.ext
必须替换为实际的扩展名。如果使用的是
.txt
文件,则替换为
.txt


另外,检查文件的位置(您需要指定确切的路径)。

文件2是什么意思?实际的文件名是什么?只是
2.txt
?是的,实际名称是2.txt然后,正如Eleanore所建议的,您需要将
a
从双tp字符串转换为双tp字符串,并添加正确的文件扩展名。埃莉诺的回答是正确的。另一个错误是,您没有将正确的文件id传递给feof
。它应该是
,而~feof(fid)
<代码>文件未在代码中的任何位置定义。文件不是在第二行定义的吗?是的,是的,您是对的。我在看你问题中的第一段代码,你使用的是
fid
作为文件ID,而不是
文件
。正如Eleanore提到的,您需要用正确的文件扩展名替换
'.ext'
,在您的情况下,文件扩展名是
'.txt'
。检查
文件返回的值。如果是-1,那么在某个地方就有一个错误:文件2是什么意思?实际的文件名是什么?只是
2.txt
?是的,实际名称是2.txt然后,正如Eleanore所建议的,您需要将
a
从双tp字符串转换为双tp字符串,并添加正确的文件扩展名。埃莉诺的回答是正确的。另一个错误是,您没有将正确的文件id传递给feof
。它应该是
,而~feof(fid)
<代码>文件未在代码中的任何位置定义。文件不是在第二行定义的吗?是的,是的,您是对的。我在看你问题中的第一段代码,你使用的是
fid
作为文件ID,而不是
文件
。正如Eleanore提到的,您需要用正确的文件扩展名替换
'.ext'
,在您的情况下,文件扩展名是
'.txt'
。检查
文件返回的值。如果它是-1,那么在某个地方就有一个错误:混合结果。我得到错误:“使用feof无效文件标识符时出错。使用fopen生成有效文件标识符时出错。在Untitled4(第20行)中出错,而~feof(文件)”我将用我的所有代码编辑上面的帖子。根据你的代码,你需要打开文件“2.ext”,而你在评论中说你的文件名是“2.txt”。显然,“.ext”需要替换为实际扩展名。很容易看出
fopen
命令是否有错误:如果得到
fid=-1
,则无法正确读取文件。结果好坏参半。我得到错误:“使用feof无效文件标识符时出错。使用fopen生成有效文件标识符时出错。在Untitled4(第20行)中出错,而~feof(文件)”我将用我的所有代码编辑上面的帖子。根据你的代码,你需要打开文件“2.ext”,而你在评论中说你的文件名是“2.txt”。显然,“.ext”需要用实际扩展名替换。很容易看出您是否在使用
fopen
命令时出错:如果您得到
fid=-1
,那么您没有正确读取文件。