Matlab中本地文件的构建地址
Build address for a local file in Matlab
我有一些本地文件,我想 运行 我的程序在另一台电脑上而不更改所有地址。 C:\Users... 是我电脑上的本地地址。当我 运行 它在另一台电脑上时,它给我错误。实际上,我必须更改其他 PC 中的每一个地址并重新寻址。我想知道这个问题是否有解决方案。我怎样才能在 MATLAB 中做到这一点?
这是我的代码的一部分:
此处有更多详细信息:
%Reading train dataset
directory=dir('C:\Users\Rihanna\Desktop\TrainSet');
for i=3:length(directory)
folderstring=strcat('C:\Users\Rihanna\Desktop\TrainSet\',directory(i).name);
directory1=dir(folderstring);
for j=3:length(directory1)
TrainSet{i-2}{j-2}=audioread(strcat(folderstring,'\',directory1(j).name));
end
end
%--------------------------------------------------------------------------------
%Reading test dataset
directory2=dir('C:\Users\Rihanna\Desktop\TestSet');
for i=3:length(directory2)
folderstring=strcat('C:\Users\Rihanna\Desktop\TestSet\',directory2(i).name);
directory3=dir(folderstring);
for j=3:length(directory3)
TestSet{i-2}{j-2}=audioread(strcat(folderstring,'\',directory3(j).name));
end
end
%.......................................................................................
% make files equal in size using zero padding
%find longest
max=0;
TrainSize=0;
TestSize=0;
for i=3: length(directory)
for j=3:length(directory1)
if(size(TrainSet{i-2}{j-2},1) > TrainSize)
TrainSize=size(TrainSet{i-2}{j-2},1);
end
end
end
%----------------------------------------------------------------------------------------------
for i=3:length(directory2)
folderstring=strcat('C:\Users\Rihanna\Desktop\TestSet\',directory2(i).name);
directory3=dir(folderstring);
for j=3:length(directory3)
if(size(TestSet{i-2}{j-2},1) > TestSize)
TestSize=size(TestSet{i-2}{j-2},1);
%tempsize=size(TestSet{i-2}{j-2},1);
% TestSize=max(tempsize,TestSize);
end
end
end
...
%zero padding-----------------------------------
for i=3: length(directory2)
folderstring=strcat('C:\Users\Rihanna\Desktop\TestSet\',directory2(i).name);
directory3=dir(folderstring);
for j=3:length(directory3)
m=zeros(1,max-size(TestSet{i-2}{j-2},1));
..
.
开始(移动到另一台 PC 时需要更改):
path_base = 'C:\Users\Rihanna\Desktop\';
然后您可以创建训练和测试文件的路径。
path_test = strcat(path_base,'TestSet\');
path_train = strcat(path_base,'TrainSet\');
现在您可以在您现在编写完整路径的所有地方使用这两个路径变量。
解决此问题的最简单方法是使用 pwd
,它会为您提供程序所在的当前目录 运行。
通过在此示例中使用 pwd
,当您在另一台 PC 上 运行 时,无需更改代码的任何部分。您所要做的就是将文件放在当前目录中。
path=pwd;
str1=strcat(pwd,'\TrainSet');
directory=dir(str1);
for i=3:length(directory)
folderstring=strcat(str1,'\',directory(i).name);
directory1=dir(folderstring);
for j=3:length(directory1)
TrainSet{i-2}{j-2}=audioread(strcat(folderstring,'\',directory1(j).name));
end
end
我有一些本地文件,我想 运行 我的程序在另一台电脑上而不更改所有地址。 C:\Users... 是我电脑上的本地地址。当我 运行 它在另一台电脑上时,它给我错误。实际上,我必须更改其他 PC 中的每一个地址并重新寻址。我想知道这个问题是否有解决方案。我怎样才能在 MATLAB 中做到这一点? 这是我的代码的一部分: 此处有更多详细信息:
%Reading train dataset
directory=dir('C:\Users\Rihanna\Desktop\TrainSet');
for i=3:length(directory)
folderstring=strcat('C:\Users\Rihanna\Desktop\TrainSet\',directory(i).name);
directory1=dir(folderstring);
for j=3:length(directory1)
TrainSet{i-2}{j-2}=audioread(strcat(folderstring,'\',directory1(j).name));
end
end
%--------------------------------------------------------------------------------
%Reading test dataset
directory2=dir('C:\Users\Rihanna\Desktop\TestSet');
for i=3:length(directory2)
folderstring=strcat('C:\Users\Rihanna\Desktop\TestSet\',directory2(i).name);
directory3=dir(folderstring);
for j=3:length(directory3)
TestSet{i-2}{j-2}=audioread(strcat(folderstring,'\',directory3(j).name));
end
end
%.......................................................................................
% make files equal in size using zero padding
%find longest
max=0;
TrainSize=0;
TestSize=0;
for i=3: length(directory)
for j=3:length(directory1)
if(size(TrainSet{i-2}{j-2},1) > TrainSize)
TrainSize=size(TrainSet{i-2}{j-2},1);
end
end
end
%----------------------------------------------------------------------------------------------
for i=3:length(directory2)
folderstring=strcat('C:\Users\Rihanna\Desktop\TestSet\',directory2(i).name);
directory3=dir(folderstring);
for j=3:length(directory3)
if(size(TestSet{i-2}{j-2},1) > TestSize)
TestSize=size(TestSet{i-2}{j-2},1);
%tempsize=size(TestSet{i-2}{j-2},1);
% TestSize=max(tempsize,TestSize);
end
end
end
...
%zero padding-----------------------------------
for i=3: length(directory2)
folderstring=strcat('C:\Users\Rihanna\Desktop\TestSet\',directory2(i).name);
directory3=dir(folderstring);
for j=3:length(directory3)
m=zeros(1,max-size(TestSet{i-2}{j-2},1));
..
.
开始(移动到另一台 PC 时需要更改):
path_base = 'C:\Users\Rihanna\Desktop\';
然后您可以创建训练和测试文件的路径。
path_test = strcat(path_base,'TestSet\');
path_train = strcat(path_base,'TrainSet\');
现在您可以在您现在编写完整路径的所有地方使用这两个路径变量。
解决此问题的最简单方法是使用 pwd
,它会为您提供程序所在的当前目录 运行。
通过在此示例中使用 pwd
,当您在另一台 PC 上 运行 时,无需更改代码的任何部分。您所要做的就是将文件放在当前目录中。
path=pwd;
str1=strcat(pwd,'\TrainSet');
directory=dir(str1);
for i=3:length(directory)
folderstring=strcat(str1,'\',directory(i).name);
directory1=dir(folderstring);
for j=3:length(directory1)
TrainSet{i-2}{j-2}=audioread(strcat(folderstring,'\',directory1(j).name));
end
end