如何在两台计算机上使用matlab并在我的脚本中加载文件(位于不同的文件位置)?

时间:2014-09-05 01:30:18

标签: matlab

我计划在学校的计算机实验室使用matlab。在家里,我会在自己的电脑上使用Matlab。我使用dropbox来存储和访问来自不同计算机的文件。有时我需要将文件加载到我的matlab脚本中。我的问题是:如果我同时使用学校和我自己的计算机,我的文件将位于两个不同的文件位置;每次我在学校和家里工作时,我都需要更改matlab代码。我该怎么办?

感谢。

PS我可以将笔记本电脑带到学校,并在笔记本电脑上完成所有matlab任务。我不愿意,因为我的笔记本电脑很重,可能会在我的科学实验室中被盗或损坏。

2 个答案:

答案 0 :(得分:0)

您可以使用pwd来获取当前正在处理的m文件test.m的完整路径,而不是在加载文件时指定matlab代码中的完整路径。例如:

您的代码:

load('c:\matlab\myfile\test.mat')

修订代码:

load([pwd,'\test.mat'])

我认为文件test.mattest.m都在同一个文件夹myfile中。

答案 1 :(得分:0)

我使用3台电脑

  1. 办公室电脑
  2. House Desktop
  3. 笔记本
  4. 我想出了一个适用于Google云端硬盘的解决方案(同样适用于Box)。我创建了一个名为gpath的函数(Google Drive路径的缩写)。该函数检查我所在的计算机,然后相应地更改路径名。这是函数

    function [] = gpath(A)
    
    [~,pcname] = system('hostname'); %fetch the pc's current name
    pcname=pcname(1:end-1)
    pcname = cellstr(pcname); %turn it into a string
    homeDesktop = {'Patricks-PC'}; %This is the name of my pc at home make sure its not the same as my desktop...it might be
    z640 = {'M-2UA638373V'};
    laptop = {'DESKTOP-4QHJ1G7'};
    
    if strcmp(pcname,z640) ==1 %for z640
        path = strcat('C:\Users\Patrick\Google Drive\', A)
        cd(path)
    
    elseif strcmp(pcname,homeDesktop) ==1 %for Antec p193
        path = strcat('H:\Google Drive\', A)
        cd(path)
    
    elseif strcmp(pcname,laptop) ==1 %for ASUS laptop
        path = strcat('C:\Users\Patty\Google Drive', A)
        cd(path)
    
    end
    

    现在让我们假设我想将我的目录设置为Google Drive \ Project1而不是写

    cd('C:\Users\Patrick\Google Drive\Project1')
    

    我只是写

    gpath('Project1')
    

    这段代码可以在我的所有3台计算机上运行,​​这意味着每次从办公室工作切换到家时,我都不需要更改脚本。如果你喜欢这个答案,请考虑给我竖起大拇指。