我想知道是否有人可以通过Matlab fopen命令解释以下问题:
>> [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工作中,上述工作可以工作,但在大多数情况下我需要在没有干预的情况下启动这些工作。当我尝试通过存储的文件名执行此操作时:
>> 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时它会失败吗?
谢谢, 安德鲁