When I run the following code it only shows the last file in the directory in MATLAB workspace? How do I get all the files in my directory saved in the workspace?

1 回表示 (過去 30 日間)
ivsFiles = dir('*.ivs');
numfiles = length(ivsFiles);
for k = 1:103;
filename = ivsFiles(k).name;
fileID = filename;
C = textscan(filename,'%d');
end
  3 件のコメント
Anuradha Bhattacharya
Anuradha Bhattacharya 2016 年 9 月 22 日
But I have files ra1001 to ra1150. How do I open and read all the files in the directory? Thanks for your help.
Anuradha Bhattacharya
Anuradha Bhattacharya 2016 年 9 月 22 日
I tried this code:
ivsFiles = dir('*.ivs');
numfiles = length(ivsFiles);
for k = 1:103;
filename = ivsFiles(k).name;
fileID = filename;
fid = fopen('ra%d.ivs',k);
C = textscan(fid,'%d');
fclose(fid);
end
It is giving error:
Error using fopen Invalid permission.
My files do not have any password settings on them.

サインインしてコメントする。

採用された回答

KSSV
KSSV 2016 年 9 月 22 日
編集済み: KSSV 2016 年 9 月 22 日
ivsFiles = dir('*.ivs');
numfiles = length(ivsFiles);
C = cell(numfiles,1) ; % initialize each file's data into a cell
for k = 1:numfiles;
filename = ivsFiles(k).name;
fileID = filename;
C{i} = textscan(filename,'%d');
end
Please note that, you will eat up the memory if the files are huge.
  2 件のコメント
KSSV
KSSV 2016 年 9 月 22 日
Consider Walter Roberson comments...he is right..
Walter Roberson
Walter Roberson 2016 年 9 月 22 日
ivsFiles = dir('*.ivs');
numfiles = length(ivsFiles);
C = cell(numfiles,1) ; % initialize each file's data into a cell
for k = 1:numfiles;
filename = ivsFiles(k).name;
fileID = fopen(filename, 'rt');
C{i} = textscan(fileID,'%d');
fclose(fileID);
end

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLow-Level File I/O についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by