我有以下代碼: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,'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
你是什麼意思的文件2?什麼是實際的文件名?它只是'2.txt'? – am304
是的,實際名稱是2.txt – user2587726
然後,正如Eleanore所建議的那樣,您需要從double tp字符串轉換'a'並添加正確的文件擴展名。埃萊諾的答案是正確的。你的其他錯誤是因爲你沒有將正確的文件ID傳遞給'feof'。它應該是'while〜feof(fid)'。 'file'在代碼中沒有定義。 – am304