声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1208|回复: 13

[编程技巧] 求助一个编程技巧问题

[复制链接]
发表于 2009-4-4 10:54 | 显示全部楼层 |阅读模式

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

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

x
比如要求一个方程组的jacobian矩阵
举个列子:求的结果dF(1,1)=1;dF(1,2)=2;dF(2,1)=1;dF(2,2)=2;用什么命令能使dF=(1 2;1 2);
我看了一个资料用了dF=zeros(2,2);
结果使个零矩阵,还有其它的命令吗,请指点一下
回复
分享到:

使用道具 举报

发表于 2009-4-4 10:59 | 显示全部楼层
没太明白你的意思,这样吗?
dF=[1 2;1 2];
 楼主| 发表于 2009-4-4 15:14 | 显示全部楼层
是啊,就是这样的啊,那是我要得到的结果,不是用手输入,用个指令。用zeros好像好使,问一个问题我的数据怎么都显示整数部分,比如,在M文件中输入a=4.879,b=2.2运行后只显示a=5,b=2,这是怎么回事?
上面的问题是不是长格式,和短格式的问题,比如1e+4*1.00005短格式输出等于1.0000,请问如何设定成格式?

[ 本帖最后由 ChaChing 于 2009-4-4 21:34 编辑 ]
发表于 2009-4-4 17:19 | 显示全部楼层
第一个问题可以使用reshape函数来解决。
第二个问题如果是要在工作区之外显示的话,在输出格式中设置,看看fprintf帮助

评分

1

查看全部评分

 楼主| 发表于 2009-4-4 19:06 | 显示全部楼层
当然在工作区显示啊,为什小数点后只有四位,后面的都四舍五入了,1e+4*0.00002只显示1e+4*0.0000,还是不知道为什么,难道与我的输入数据有关,数量级相差太大了?
发表于 2009-4-4 21:29 | 显示全部楼层
1.输入a=4.879,b=2.2运行后只显示a=5,b=2? 不太可能这样
2.help format, 并试试 format long e

[ 本帖最后由 ChaChing 于 2009-4-4 21:36 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2009-4-5 08:52 | 显示全部楼层
不是输入,我编的一个程序,当调用子程序时会这样,子程序是一个jacobian矩阵,比如矩阵里的两个数4.879,0.2.当调入主程序时只显示1e+4*(0.0005,0.0000),这是怎么回事?我是设断点检查的
发表于 2009-4-5 15:59 | 显示全部楼层

回复 7楼 讨论求知 的帖子

显示问题嘛
 楼主| 发表于 2009-4-5 18:17 | 显示全部楼层
好像这是短格式显示,如何变为长格式显示?还是数量级相差太大
发表于 2009-4-5 19:58 | 显示全部楼层
 楼主| 发表于 2009-4-6 08:23 | 显示全部楼层
你那种方法不好使,书上也有的。
你不要总是这么说我,你权利很大吗,那就把我提出去吧
发表于 2009-4-6 10:54 | 显示全部楼层

回复 11楼 讨论求知 的帖子

既然不懂就要谦虚点,说你要加强问问题方式一点都没冤枉你。
发表于 2009-4-6 11:38 | 显示全部楼层

回复 11楼 讨论求知 的帖子

唉! 就是个人水平专业有限, 才希望楼主说清楚些嘛!
若表达让LZ不舒服, 个人会改进! 但说教真的是希望LZ可以更好!
就请参考下吧!
 楼主| 发表于 2009-4-6 17:39 | 显示全部楼层

回复 13楼 ChaChing 的帖子

我的问题是随时想随时问的,也没在意那么多,以后会遵守规则的。在这个学习知识的地方计较和讨论这些不好。感谢大家给我提出的建议。我的问题已经解决了,就是上面说的数量级相差太大原因。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-6 07:23 , Processed in 0.074885 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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