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