例如,在循环中:
for i=1:10,
% do something...
end
Run Code Online (Sandbox Code Playgroud)
作为矩阵的索引:
mat( i, j ) = 4;
Run Code Online (Sandbox Code Playgroud)
为什么不应该他们作为在Matlab的变量名?
我如何检查当前目录中是否存在多个csv文件?
我有一个名为PowerOutput.csv的csv文件,我可以看看它是否存在
exist('PowerOutput.csv','file')
Run Code Online (Sandbox Code Playgroud)
但是,我可以拥有许多这样的文件,例如PowerOutput1.csv,PowerOutput2.csv,PowerOutput3.csv等等.
查找目录中存在哪些文件的最佳方法是什么?
目前我尝试过:
TopFolder = pwd;
SubFolder = dir(TopFolder);
SubFolder = {SubFolder.name};
SubFolder(strncmp(SubFolder,'.',1)) = [];
% -- find the number of PowerOutput
num_Power = strncmp({'PowerOutput'}, SubFolder,length('PowerOutput'));
num_Power(num_Power == 0) = [];
num_Power = 1:length(num_Power);
Run Code Online (Sandbox Code Playgroud)
然后我可以通过以下方式导入数据:
% -- import inflow
for i = 1:length(num_Power);
filename = fullfile(TopFolder,horzcat('PowerOutput',num2str(num_Power(i)),'.csv'));
fid = fopen(filename);
headers = textscan(fid, '%s%s', 1, 'delimiter',',');
dat = textscan(fid,'%s%f%f','delimiter',',','headerlines',1);
fclose(fid);
end
Run Code Online (Sandbox Code Playgroud)
但这似乎是一种非常冗长的做法.有什么建议?
我的目录中有100个ASCII文件,全部命名如下:
int_001.ASC
int_002.ASC
int_003.ASC
.
.
.
int_099.ASC
int_100.ASC
我必须使用importdata在MATLAB中导入它们,它应该如下工作:
A = importdata('int_001.ASC', ' ', 9)
x = A.data(:,1)
y = A.data(:,2)
Run Code Online (Sandbox Code Playgroud)
我的问题是:我怎么能避免写100次importdata?有没有办法只写第一个字符串,然后上传所有数据?
谢谢