多文件加载matlab
Multiple file loading matlab
我想在几个文件夹中加载多个文件并为每个文件绘制图形。我对matlab环境很幼稚,我做了这样的脏事!:
foldername1='K_S/';
foldername2='L_J/';
foldername3='P_O/';
extension='*.pro';
name1=strcat(foldername1, extension);
name2=strcat(foldername2, extension);
name3=strcat(foldername3, extension);
fileset1=dir(name1);
fileset2=dir(name2);
fileset3=dir(name3);
a = [];
b = [];
c = [];
for i = 1:length(fileset1)
a=load(strcat(foldername1, fileset1(i).name));
b=load(strcat(foldername2, fileset2(i).name));
c=load(strcat(foldername3, fileset3(i).name));
figure
sub1=plot(a(:,1),a(:,2),'b'), hold on
sub2=plot(a(:,1),a(:,3),'r')
ylabel('score')
xlabel('trial')
legend([sub1, sub2],'sub1','sub2')
legend boxoff
title(sprintf('Dyad K S: %d',i));
axis square
figure
sub1=plot(b(:,1),b(:,2),'b'), hold on
sub2=plot(b(:,1),b(:,3),'r')
ylabel('score')
xlabel('trial')
legend([sub1, sub2],'sub1','sub2')
legend boxoff
title(sprintf('Dyad L J: %d',i));
axis square
figure
sub1=plot(c(:,1),c(:,2),'b'), hold on
sub2=plot(c(:,1),c(:,3),'r')
ylabel('score')
xlabel('trial')
legend([sub1, sub2],'sub1','sub2')
legend boxoff
title(sprintf('Dyad P O: %d',i));
axis square
end
任何有关如何使其更智能的帮助都将不胜感激。
谢谢!
你应该在 matlab 中使用 cells,它允许将多个对象存储到一个变量中。
类似的东西
foldername ={'K_S/', 'L_J/', 'P_O/'};
extension='*.pro';
for k = 1:length(foldername)
name=strcat(foldername{k}, extension);
fileset=dir(name);
a = [];
for i = 1:length(fileset)
a=load(strcat(foldername{k}, fileset(i).name));
figure
sub1=plot(a(:,1),a(:,2),'b'), hold on
sub2=plot(a(:,1),a(:,3),'r')
ylabel('score')
xlabel('trial')
legend([sub1, sub2],'sub1','sub2')
legend boxoff
title(sprintf(['Dyad' strrep(foldername{k}, '_', ' ') ': %d'],i));
axis square
end
end
我想在几个文件夹中加载多个文件并为每个文件绘制图形。我对matlab环境很幼稚,我做了这样的脏事!:
foldername1='K_S/';
foldername2='L_J/';
foldername3='P_O/';
extension='*.pro';
name1=strcat(foldername1, extension);
name2=strcat(foldername2, extension);
name3=strcat(foldername3, extension);
fileset1=dir(name1);
fileset2=dir(name2);
fileset3=dir(name3);
a = [];
b = [];
c = [];
for i = 1:length(fileset1)
a=load(strcat(foldername1, fileset1(i).name));
b=load(strcat(foldername2, fileset2(i).name));
c=load(strcat(foldername3, fileset3(i).name));
figure
sub1=plot(a(:,1),a(:,2),'b'), hold on
sub2=plot(a(:,1),a(:,3),'r')
ylabel('score')
xlabel('trial')
legend([sub1, sub2],'sub1','sub2')
legend boxoff
title(sprintf('Dyad K S: %d',i));
axis square
figure
sub1=plot(b(:,1),b(:,2),'b'), hold on
sub2=plot(b(:,1),b(:,3),'r')
ylabel('score')
xlabel('trial')
legend([sub1, sub2],'sub1','sub2')
legend boxoff
title(sprintf('Dyad L J: %d',i));
axis square
figure
sub1=plot(c(:,1),c(:,2),'b'), hold on
sub2=plot(c(:,1),c(:,3),'r')
ylabel('score')
xlabel('trial')
legend([sub1, sub2],'sub1','sub2')
legend boxoff
title(sprintf('Dyad P O: %d',i));
axis square
end
任何有关如何使其更智能的帮助都将不胜感激。
谢谢!
你应该在 matlab 中使用 cells,它允许将多个对象存储到一个变量中。 类似的东西
foldername ={'K_S/', 'L_J/', 'P_O/'};
extension='*.pro';
for k = 1:length(foldername)
name=strcat(foldername{k}, extension);
fileset=dir(name);
a = [];
for i = 1:length(fileset)
a=load(strcat(foldername{k}, fileset(i).name));
figure
sub1=plot(a(:,1),a(:,2),'b'), hold on
sub2=plot(a(:,1),a(:,3),'r')
ylabel('score')
xlabel('trial')
legend([sub1, sub2],'sub1','sub2')
legend boxoff
title(sprintf(['Dyad' strrep(foldername{k}, '_', ' ') ': %d'],i));
axis square
end
end