2

在访问文件时,我注意到 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')

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

4

1 回答 1

3

是的,exist了解相对路径(由波浪号标识),textread但不了解。

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

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

于 2013-04-26T10:06:42.057 回答