首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Matlab中构建本地文件的地址

在Matlab中构建本地文件的地址
EN

Stack Overflow用户
提问于 2015-06-08 10:52:35
回答 2查看 40关注 0票数 0

我有一些本地文件,我想在另一台pc上运行我的程序,而不改变所有地址。\\用户..。是我电脑上的本地地址。当我在另一台pc上运行它时,它会给我带来错误。实际上,我必须更改其他个人电脑中的每一个地址,然后再对它们进行寻址。我想知道这个问题是否有解决办法。我怎样才能在MATLAB中做到这一点?下面是我的代码的一部分:这里有更多详细信息:

代码语言:javascript
复制
    %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

..。

代码语言:javascript
复制
        %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));        
..     
.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-19 12:01:20

解决此问题的最简单方法是使用pwd,它为您提供程序正在运行的当前目录。通过在本示例中使用pwd,在另一台PC上运行代码时,不需要更改代码的任何部分。您所要做的就是将您的文件放在当前目录中。

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2015-06-08 14:02:33

首先(当您移动到另一台PC时,您将需要更改):

代码语言:javascript
复制
path_base = 'C:\\Users\\Rihanna\\Desktop\\';

然后,您可以创建到您的火车和测试文件的路径。

代码语言:javascript
复制
path_test = strcat(path_base,'TestSet\\');
path_train = strcat(path_base,'TrainSet\\');

现在,您可以在任何地方使用这两个路径变量,只要您现在已经编写了自己的路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30707263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档