Error using .* Matrix dimensions must agree.
1 次查看(过去 30 天)
显示 更早的评论
M = 25;
alpha = (M-1)/2;
n = 0:M-1;
hd = (2/pi)*((sin((pi/2)*(n-alpha)).^2)./(n-alpha));
hd(alpha+1)=0;
w_han = '(hann(M))';
h = hd .* w_han; %%%here is the error
2 个评论
KALYAN ACHARJYA
2020-12-27
编辑:KALYAN ACHARJYA
2020-12-27
Array multiplication between numeric array and character array??
> whos hd
Name Size Bytes Class Attributes
hd 1x25 200 double
>> whos w_han
Name Size Bytes Class Attributes
w_han 1x9 18 char
Aim?
w_han??
采纳的回答
KALYAN ACHARJYA
2020-12-27
编辑:KALYAN ACHARJYA
2020-12-27
In this case hd is numeric array with size 25
whos hd
Name Size Bytes Class Attributes
hd 1x25 200 double
Whereas w_han is character array with size 9
>> whos w_han
Name Size Bytes Class Attributes
w_han 1x9 18 char
Once you try to multiply between the numeric array and the character array, you supose to get an error as follows
Error using .*
Matrix dimensions must agree.
If somehow you increase the size of w_han to 25, then no error can occur. Are you really looking for that? In such case it get multiplied with ASCII code of respective character, see the example
>> a='m'
a =
'm'
>> b=5;
>> c=b.*a
c =
545
Here b is multiplied with ASCII code of m, which is 109, as
>> 5*109
ans =
545
I just want to mention this point, so that you can get the idea, if somehow an error cannot occur, it can happen in such a case.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multirate Signal Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!