kanhlbai 发表于 2008-11-20 23:58

请教:Matlab执行外部exe文件后生成的结果文件

在M文件里面使用dos filename.exe,运行工作目录里面的filename.exe文件,能够顺利运行,但是不知道运行后生成的数据文件到哪儿去了。在Matlab界面上的当前目录里面可以看到生成的数据文件,也可以打开,或者load到workspace里面,但是,在硬盘的工作目录里面就没有这些数据文件。后来发现这些生成的数据文件都在一个虚拟的存储空间里面,请问如何把这些数据生成到硬盘上,即生成直接可以用的txt或者dat文件?在M文件里面使用什么命令可以直接把dos filename.exe的运行数据结果保存在硬盘上呢?非常感谢!

hutouxia 发表于 2008-11-21 00:06

兄弟,擅长matlab不?帮我看下吧,我看了一晚上了,实在受不了了。
就是那个解微分方程的问题
谢谢哈,打扰了

kanhlbai 发表于 2008-11-22 22:03

回复 楼主 kanhlbai 的帖子

也没有人帮我 :(

ChaChing 发表于 2008-11-22 22:45

回复 楼主 kanhlbai 的帖子

filename.exe运行后生成的数据文件, 应该是看原filename.f(filename.c...)怎麽定义吧! 有定义吗?
若没有特别定义路径, 就是matlab的目前工作目录(可以下pwd看)
听楼主描述没个准!
请楼主运行filename.exe完後, 马上下dir指令, 看看目前工作目录有无该数据文件
虚拟的存储空间, 目录为何?

kanhlbai 发表于 2008-11-22 23:54

回复 地板 ChaChing 的帖子

谢谢你的回复。
我在M文件里面运用dos filename.exe命令把外部的这个filename.exe文件成功执行了,这个文件的运行结果也可以在Matalab窗口显示的当前目录里面看到,但是在硬盘上的当前目录文件甲路径里面找不到这些生成的结果文件。我的Matlab当前目录是:C:\Program Files\MATLAB\R2007b\work,而在Matalab窗口显示的当前目录里面看到结果文件路径为:C:\Users\***\AppData\Local\VirtualStore\Program Files\MATLAB\R2007b\work,所以我说第二个路径是matlab的虚拟路径。我现在的问题就是不知道如何把这些生成到虚拟路径下的结果弄到真正的当前目录下,即C:\Program Files\MATLAB\R2007b\work里面。谢谢。

ChaChing 发表于 2008-11-23 11:24

回复 5楼 kanhlbai 的帖子

不好意思, 怕理解错误, 请逐一回覆
1. 原始程式有定义输出档的路径吗?
2. commandwindow下pwd後, 显示ans = C:\Program Files\MATLAB\R2007b\work 吗?
3. command window下dir後, 有显示结果文件吗?
4. "在Matalab窗口显示的当前目录里面看到结果文件路径为:...", 那个窗口? workspace or command window?
5. "...C:\Users\***\...", 路径可以有***吗?

kanhlbai 发表于 2008-11-23 11:33

回复 6楼 ChaChing 的帖子

谢谢。
1. 原始程式有定义输出档的路径吗?
filename.exe没有定义输出路径,如果单独执行这个文件,输出的结果文件与filename.exe在同一个文件夹下。

2. commandwindow下pwd後, 显示ans = C:\Program Files\MATLAB\R2007b\work 吗?
是的,结果如下:
>> pwd

ans =

C:\Program Files\MATLAB\R2007b\work

3. command window下dir後, 有显示结果文件吗?
dir后显示的文件里面有需要的结果文件。


4. "在Matalab窗口显示的当前目录里面看到结果文件路径为:...", 那个窗口? workspace or command window?
就是类似于worksapce 或者commmand window的current directroy window


5. "...C:\Users\***\...", 路径可以有***吗?
***就是用户名,是我换成星号的。

谢谢。

ChaChing 发表于 2008-11-23 12:20

回复 7楼 kanhlbai 的帖子

奇!
1.dir後显示的文件应该是在pwd显示的路径!
2.当前目录怎麽与pwd目录不同? 矛盾!

kanhlbai 发表于 2008-11-23 12:32

回复 8楼 ChaChing 的帖子

问题就在这儿了。生成的结果文件在另一个路径下,于当前路径不一样,但是这两个路径应该有联系。现在虽然存在问题,但是也可以找到生成的结果文件,所以,先这样吧。谢谢。

kanhlbai 发表于 2008-11-23 12:48

最新情况(请教:Matlab执行外部exe文件后生成的结果文件)

最新情况

这个问题并不是因为执行外部文件而产生的,刚才我在用一个M文件的时候,没有涉及到其他外部命令,但是M文件生成的数据也是不在当前的路径下,即不在C:\Program Files\MATLAB\R2007b\work,而是到了另一个所谓的虚拟路径下:C:\Users\用户名\AppData\Local\VirtualStore\Program Files\MATLAB\R2007b\work
真是奇怪,这是什么问题呢,是不是Matlab的设置问题?谢谢!

ChaChing 发表于 2008-11-23 12:55

下save指令也是存到C:\Users\用户名\AppData\Local\VirtualStore\Program Files\MATLAB\R2007b\work吗?

kanhlbai 发表于 2008-11-23 13:10

回复 11楼 ChaChing 的帖子

问题解决了,在baidu上看到有关vista虚拟文件的讨论,原因是Vista系统下的软件使用权限设置问题,只要把Matlab的使用权限改成管理员即可。方法如下:在Matlab图标下右键〉属性〉兼容性〉把优先级中的“以管理员身份运行此程序”打勾,确定即可。
赫赫,才发现得来全不费功夫,我们之前考虑的思路错了。
非常感谢。

ChaChing 发表于 2008-11-23 13:52

其实我刚刚亦曾怀疑过是作业系统的问题, 是否有link的可能
但找了一会儿, 没找着答案!
vista? 汗! 我还没用过!

kanhlbai 发表于 2008-11-23 15:37

回复 13楼 ChaChing 的帖子

不好意思,描述问题的时候没有说明是在vista系统下,以后得注意。也谢谢版主的鼓励。
页: [1]
查看完整版本: 请教:Matlab执行外部exe文件后生成的结果文件