声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1053|回复: 3

[编程技巧] 小程序问题求助

[复制链接]
发表于 2010-9-8 17:43 | 显示全部楼层 |阅读模式

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

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

x
t=1:20;
z=(1+0.2*cos(2*pi*7.5*t))*sin(2*pi*30*t+0.4*cos(2*pi*15*t))+cos(2*pi*120*t);
plot(t,z)
这个小程序怎么运行不出来,老是说内部矩阵维数要一致,哪位大哥给解答一下,谢谢!
回复
分享到:

使用道具 举报

发表于 2010-9-8 19:20 | 显示全部楼层
我刚开始也很纳闷 后来测试了一下
z=(1+0.2*cos(2*pi*7.5*t)) 是有结果输出的 说明没问题
z=(1+0.2*cos(2*pi*7.5*t))*sin(2*pi*30*t+0.4*cos(2*pi*15*t)) 有问题了
提示说维数不对 这就很明显了 应该是中间的乘法除了出了问题,乘号之前是1×20向量,乘号之后也是,所以没法运算,改成点乘就可以了z=(1+0.2*cos(2*pi*7.5*t)).*sin(2*pi*30*t+0.4*cos(2*pi*15*t)) +cos(2*pi*120*t);

评分

1

查看全部评分

发表于 2010-9-8 21:37 | 显示全部楼层
MATLAB中有两种运算:矩阵运算和数组运算!
矩阵运算使用+-*/\,而数组运算使用.+ .- .* ./ .\,后者主要用于矩阵对应元素之间的操作!
根据我的经验,在进行运算时要先提醒一下自己进行的是否是数组运算,是否使用了正确的操作符,这样能避免掉很多问题,因为一般进行的都是数组运算,!

评分

1

查看全部评分

发表于 2010-9-9 15:15 | 显示全部楼层
在不加点的情况下,matlab可以帮你补上,不过现在不推荐用内联函数inline
  1. clear;clc;close all
  2. f=inline('(1+0.2*cos(2*pi*7.5*t))*sin(2*pi*30*t+0.4*cos(2*pi*15*t))+cos(2*pi*120*t)');
  3. z=vectorize(f);
  4. t=1:20;
  5. plot(t,z(t))
复制代码

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-16 15:03 , Processed in 0.080988 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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