Why do I get Matrix dimensions must agree? I am trying to plot the frequency response of this function.

1 ビュー (過去 30 日間)
Eliot Flores-Portillo
Eliot Flores-Portillo 2021 年 4 月 26 日
編集済み: Clayton Gotberg 2021 年 4 月 26 日
clear all; close all; clc;
%Problem 1:
w = linspace(-pi, pi,2001);
X = (1/(1-exp(-j.*w)))*(sin(1.5.*(w))./sin(w./2))+5*pi*dirac(w);
%Frequency Domain Plot
plot(w, X);
Error using /
Matrix dimensions must agree. (line 4).

採用された回答

Clayton Gotberg
Clayton Gotberg 2021 年 4 月 26 日
編集済み: Clayton Gotberg 2021 年 4 月 26 日
X = (1/(1-exp(-j.*w)))*(sin(1.5.*(w))./sin(w./2))+5*pi*dirac(w);
% ^
% This is your problem!
When MATLAB sees a scalar being divided by a matrix, it doesn't make the assumption that you want to perform the operation element-wise, like it does when you multiply a scalar and matrix or when you divide a matrix by a scalar.
x = [4 2];
y = 1/x; % Error because 1/[4 2] isn't interpretable as a matrix operation.
y = 1./x; % Returns [0.25 0.5]

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by