2016-04-08 25 views
2

komut dosyasının bulunduğu konuma göre numaralı bir dizinde bulunan load.mat dosyasını isteyen bir matlab komut dosyası var. Komut dosyası mevcut çalışma dizinine göre farklı yerlerde olabilir, bu nedenle .mat dosyasının konumu onunla ilgili bilinmemektedir. Yürütülmekte olan komut dosyasına göre yüklenecek dosyanın konumunu nasıl belirleyebilirim?Matlab yükleme dosyası komut dosyasının içinde

cevap

4

mfilename işlevi, şu anda çalışan komut dosyası'un adını döndürür. Ancak bu, komut dosyasının tam yolunu döndürmez. Muhtemelen bunu istiyorsunuz ve bu nedenle, komut dosyasının adı da dahil olmak üzere gerçek betiğin tam yolunu döndürmek için 'fullpath' seçeneğini belirtebilirsiniz.

Sadece dosyanın bulunduğu dizinin gerçek dizinini istiyorsunuz ve ilk önce gerçek dosyanın tam yolunu almak için mfilename kullanın, sonra dosyanın gerçek dizinini gerçekte ayıklamak için fileparts kullanın. fileparts, dosyanın bulunduğu dizini, dosya adını ve uzantıyı döndürür. Sadece ilk çıktı argümanını istiyorsun ve diğer çıktıları umursamıyorsun. Her alt dizin için size göstermek istiyorum böylece,

p = mfilename('fullpath'); 
[pathstr,~,~] = fileparts(p); 
d = fullfile(pathstr, 'path', 'to', 'your', 'file.mat'); 

fullfile OS bağımsız bir dizin dizesi oluşturur: Bu edindikten sonra, daha sonra .mat dosyanın konumuyla birlikte bu dizesi ekleyin sonra gerçek dizinini kullanabilirsiniz .mat dosyanıza gidin, istediğiniz dosyaya ulaşıncaya kadar bunları ayrı giriş dizeleri olarak yerleştirin. d, geçerli olarak çalışan komut dosyasına göre .mat dosyanızın tam yolunu içerecek ve daha sonra load'a göre kullanabilirsiniz.