声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2519|回复: 20

[编程技巧] 两个主函数怎么进行数据传递?

[复制链接]
发表于 2008-7-4 17:12 | 显示全部楼层 |阅读模式

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

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

x
我在运算过程中,遇到了这个问题。

就是我用到两个主函数,第二个主函数要用第一个主函数计算出来的数据,我该怎么进行数据传递呢??

我先运行完第一个主函数,然后用load把数据导入第二个函数,再运行第二个主函数,但程序老报错。。。。

望不吝赐教!!!

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2008-7-4 17:21 | 显示全部楼层

回复 楼主 的帖子

报什么错误
发表于 2008-7-4 17:50 | 显示全部楼层
用save和load是可以在2个主函数之间传递数据,但在运行笫2个主函数时先清空工作区,又2个主函数的save和load命令都要书写正确。

评分

1

查看全部评分

 楼主| 发表于 2008-7-6 15:20 | 显示全部楼层

回复 3楼 的帖子

能不能举个例子啊??

我试了,还是不行
应该是我load的时候出了问题了。

我的第一个m文件:
t = 0:0.001:10;
y = sin(t);

save('y.mat');

第二个m文件:
clear
clc
p = load('y.mat','y');
x = sin(p);

错误提示:??? Undefined function or method 'sin' for input arguments of type 'struct'.
帮忙看看啊。就上边的这个例子,我该怎么修改呢??
谢谢!

[ 本帖最后由 wxl789 于 2008-7-6 15:22 编辑 ]
发表于 2008-7-6 16:26 | 显示全部楼层
原帖由 wxl789 于 2008-7-6 15:20 发表
能不能举个例子啊??

我试了,还是不行
应该是我load的时候出了问题了。

我的第一个m文件:
t = 0:0.001:10;
y = sin(t);

save('y.mat');

第二个m文件:
clear
clc
p = load('y.mat','y');
x = sin(p);

第一个m文件应为:
t = 0:0.001:10;
y = sin(t);

save('y.mat','y');

第二个m文件:
clear
clc
load('y.mat');
这样就可以了,在save时要把变量名也作为参数放入。

评分

1

查看全部评分

 楼主| 发表于 2008-7-6 17:31 | 显示全部楼层

回复 5楼 的帖子

不对啊
还是出现上边那个错误:??? Undefined function or method 'sin' for input arguments of type 'struct'.
 楼主| 发表于 2008-7-6 17:41 | 显示全部楼层
这个问题我已经解决了。
不用load改用importdata就可以了。。。

但是好像又有问题了:
我导入的数据是个整体,而我的第二个程序是分步执行的,每步只需要取导入数据中的一列,该怎么办呢??

是不是可以按列导入,也就是每步只导入一列呢???如果可以的话,该怎么修改命令呢??

谢谢!!
发表于 2008-7-6 19:28 | 显示全部楼层

回复 7楼 的帖子

搜索下论坛里的分批读取数据
发表于 2008-7-6 21:29 | 显示全部楼层

回复 6楼 的帖子

注意是load('y.mat');不是p = load('y.mat');,再试试?
 楼主| 发表于 2008-7-11 20:58 | 显示全部楼层

回复 9楼 的帖子

这个问题我又重新思考了,觉得难点应该是怎么让ode45函数内外相互联系的问题。
我也已经发帖:http://vibunion.com/forum/viewth ... =page%3D1#pid359700

请给予指导
谢谢!!
发表于 2008-7-11 21:38 | 显示全部楼层

回复 10楼 的帖子

你的意思是根据计算的过程控制改变函数吧?
 楼主| 发表于 2008-7-11 22:28 | 显示全部楼层

回复 11楼 的帖子

难得啊
无水也来这里啦

可能我还是没有把问题描述清楚

我又发了帖子
你看看

不知道说清楚了没有
发表于 2008-7-12 14:19 | 显示全部楼层
错误提示:??? Undefined function or method 'sin' for input arguments of type 'struct'.

结构体不能直接进行函数运算,转化下就可以了

评分

1

查看全部评分

 楼主| 发表于 2008-7-13 08:52 | 显示全部楼层

回复 13楼 的帖子

该怎么转化呢??

我保存的本来就是数组,不是结构体,但在调入的时候,原来的数组变成了结构体,我现在也没有搞清楚这个是怎么回事。
还好直接用importdata就可以了。。。

关于上面的问题,还请赐教。。。。
发表于 2008-12-5 22:17 | 显示全部楼层
楼主这问题解决了吗? 说真格, 水平不好看了许久, 晕眩了! 不很确定楼主的需求?

两个主函数怎么进行数据传递, 试试 global !

5F的 t = 0:0.001:10; y = sin(t); 怎可能会报 6F的错误提示:??? Undefined function or method 'sin' for input arguments of type 'struct' ?? t那有可能是structure array!?

7F "不用load改用importdata就可以了", why? 有差吗?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-29 14:20 , Processed in 0.161455 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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