Matlab不会使用波浪号(〜)而不是完整的主路径来读取文件

时间:2013-04-26 10:04:19

标签: matlab unix file-io

我注意到Matlab在访问文件时出现了奇怪的行为。假设我有一个这样的文件的路径:

path = '~/data/file'

如果我运行exist(path),结果为2,即文件存在。如果我跑

textread(path, '%s')

然后我收到错误消息

Error using dataread
File not found or permission denied.

但是,如果我展开代字号并运行textread,它可以正常工作:

path2 = '/home/username/data/file'
textread(path2, '%s')

你能解释一下这种行为吗?

1 个答案:

答案 0 :(得分:3)

是的,exist了解相对路径(由代字号确定),而textread则不知道。

请注意,textscan现在是从文件中读取数据的首选方式 - 它接受文件标识符,因此可以使用相对路径。

如果这不是一个选项,可以找到一个好的GetFullPath函数here