24小时热门版块排行榜    

查看: 1759  |  回复: 2

bettyzhy1

铁虫 (小有名气)

[交流] matlab怎么使两个函数相减然后画出图,错误使用 - 矩阵维度必须一致。 已有1人参与

帮忙看看这个程序有啥问题,程序没写完,大概意思就是读两个Excel,然后定义了两个函数,第一个函数用的是表格里的数据,第二个函数是定义了函数表达式,然后将其相减再画出图来。显示的是f=ma-y;这一行有错误:
错误使用  -
矩阵维度必须一致。

y=xlsread('');
y0=xlsread('');
Fs = 4000;                    % Sampling frequency
T = 1/Fs;                     % Sample time
L = length(y);                % Length of signal
t = (0:L-1)*T;

y1=y(:,9);
y2=y(:,10);
y01=y0(:,9);
y02=y0(:,10);
y=11.036999*((y2-mean(y02))-(y1-mean(y01)));
ma=11.235*cos(2*pi*1.892*(t-0.2838));
f=ma-y;
plot(t,f)
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Yan_Jordan

木虫 (小有名气)

★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 金币+1, 感谢参与 2017-08-24 21:19:12
你的L = length(y);  是有可能出问题的,因为你的y是一个二维矩阵,L 得到的是行数和列数中的最大值,如果你的行数比较列数小就可能出问题,最好写成[L, ~]=size(y);

第二个问题是 f=ma-y; 这里的ma和y 应该一个是1 X N维一个是 N X 1维,所以你需要改成  f=ma'-y; 就行了。

这些问题可以通过观察matlab的workspace中变量的维度参数可以得出,楼主加油

» 本帖已获得的红花(最新10朵)

2楼2017-08-23 17:21:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bettyzhy1

铁虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by Yan_Jordan at 2017-08-23 17:21:58
你的L = length(y);  是有可能出问题的,因为你的y是一个二维矩阵,L 得到的是行数和列数中的最大值,如果你的行数比较列数小就可能出问题,最好写成=size(y);

第二个问题是 f=ma-y; 这里的ma和y 应该一个是1 X  ...

多谢啦
3楼2017-08-23 19:49:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bettyzhy1 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见