首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab fopen命令响应字符串,但不响应等于相同字符串的变量

Matlab fopen命令响应字符串,但不响应等于相同字符串的变量
EN

Stack Overflow用户
提问于 2011-04-02 01:45:57
回答 1查看 2.1K关注 0票数 2

我想知道是否有人可以用Matlab fopen命令来说明以下问题:

代码语言:javascript
复制
>> [stat myjob] = unix('echo $PBS_NODEFILE'); % gets PBS file name with allocated nodes  
>> myjob

myjob =

/opt/torque/aux//66058.crunch.local


>> fid = fopen('/opt/torque/aux//66058.crunch.local')

fid =

     3

>> fgetl(fid)

ans =

compute-9-2

>> fclose(fid);

我需要节点的名称,以便在脚本中控制以后的一些决策。如果我在一个交互式的PBS工作中,上面的工作可以工作,但在大多数情况下,我需要在没有干预的情况下启动这些工作。当我尝试通过存储的文件名执行此操作时:

代码语言:javascript
复制
>> fid = fopen(myjob) % returns invalid                               

fid =

    -1

>> fgetl(fid)                                        
??? Error using ==> fgetl at 44
Invalid file identifier.  Use fopen to generate a valid file identifier.

为什么,当我直接输入存储在myjob中的值时,我会得到一个有效的标识符,但是当我输入myjob时,它会失败吗?

谢谢,安德鲁

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-02 02:08:10

试试这个:

代码语言:javascript
复制
fid = fopen(deblank(myjob));

从上面输出的格式来看,在显示myjob的值之后似乎出现了一个额外的空行,这表明字符串的末尾可能出现了换行符。换行符将导致文件名无法识别,因此您可以使用函数DEBLANK从字符串中删除任何尾随空格(或者可以使用函数STRTRIM删除尾随空格和前导空格)。

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

https://stackoverflow.com/questions/5516926

复制
相关文章

相似问题

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