声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1283|回复: 5

[编程技巧] matlab能不能直接访问内存里的数据?

[复制链接]
发表于 2010-5-2 08:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
如何让matlab直接访问内存里面的数据啊?
回复
分享到:

使用道具 举报

发表于 2010-5-2 11:16 | 显示全部楼层

回复 楼主 zuohaoyi 的帖子

个人水平专业有限, 看不清LZ的问题, 可否说清楚些或举例!
或同待高人路过
 楼主| 发表于 2010-5-2 12:41 | 显示全部楼层

如何调用另一个函数里的大量数据?

function Q_read(w,r);
for r=1:50
    dcm='E:\散射0.2-6um\'; rds=num2str(r/10); opn_name=[dcm rds 'um.txt'];
    fid(1)= fopen(opn_name,'rt');
    for w=1:5800, Q_scf(w,r)=fscanf(fid(1),'%e',1); end
    fclose(fid(1));
end

以上是从E盘读取数据的一个函数,想在另外一个执行程序中调用这个函数里面的数据(也就是Q_scf)里面的数据,应如何调用呢?请知道的务必指点哈,为了这个程序我弄了几天了都没有进展,今天好不容易想出这么个办法,又不知道如何调用函数。

[ 本帖最后由 ChaChing 于 2010-5-29 21:31 编辑 ]
发表于 2010-5-2 14:14 | 显示全部楼层
另一贴"如何让matlab直接访问内存里面的数据啊?", 问的就是这帖的意思吗? 若是请勿开新贴,一帖发完

将function Q_read(w,r);改为function Q_scf=Q_read(w,r);即可将此函数资料输出至base workspace!

还有看下这帖 "提问的智慧!!!!(发帖前请认真阅读)"
http://forum.vibunion.com/forum/viewthread.php?tid=21991
个人水平专业有限, 真的抓不住LZ问题!:loveliness:

还有LZ的程序真的需优化下, 那两个大loop好像一点也不需要!
而且不需要在loop里头的, 不要摆在loop里头, 浪费不少运行时间!

[ 本帖最后由 ChaChing 于 2010-5-2 20:52 编辑 ]
 楼主| 发表于 2010-5-2 18:36 | 显示全部楼层
原帖由 ChaChing 于 2010-5-2 15:03 发表
还有LZ的程序真的需优化下, 那两个大loop好像一点也不需要!
而且不需要在loop里头的, 不要摆在loop里头, 浪费不少运行时间!


兄弟,我遇到要从硬盘上都数据的时候都是这么弄的,也没想过还有没有更好的方法,请问应该如何优化呢?
发表于 2010-5-2 21:21 | 显示全部楼层
首先LZ在3F的Q_read程序不会报错吗?
档案名称可以是'E:\散射0.2-6um\0.2um.txt'吗? fid不等于-1吗?

LZ是要将50个同数量的档案读入matlab吗? 若是外loop仍应存在, 粗看时没注意到!
个人认为有问题的(但不确定LZ真正要的), 稍为改动下

  1. dcm='E:\散射0p2-6um\';
  2. for r=1:50
  3.     rds=num2str(r); opn_name=[dcm rds 'um.txt']; fid= fopen(opn_name,'rt');
  4.     Q_scf(:,r)=fscanf(fid(1),'%e'); fclose(fid);
  5. end

复制代码

[ 本帖最后由 ChaChing 于 2010-5-2 23:37 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 15:24 , Processed in 0.059674 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表