フィルターのクリア

Why am I getting "Arrays have incompatible sizes for the operation." error message?

2 ビュー (過去 30 日間)
Abdullah
Abdullah 2023 年 3 月 14 日
回答済み: Image Analyst 2023 年 3 月 14 日
>> % Circuit parameters
>> C = 15e-6; % capacitance (F)
>> L = 240e3; % inductance (H)
>> vm = 24; % source voltage amplitude (V)
>>
>>
>> % Range of frequencies and resistances
>> f = 60:1:110; % driving frequency (Hz)
>> R = 10:1:40; % resistance (ohms)
>>
>>
>> % Calculate amplitude of current
>> wd = 2*pi*f;
>> I = vm ./ sqrt(R.^2 + (wd*L - 1./(wd*C)).^2);
Arrays have incompatible sizes for this operation.
Related documentation
>>

採用された回答

Image Analyst
Image Analyst 2023 年 3 月 14 日
% Circuit parameters
C = 15e-6; % capacitance (F)
L = 240e3; % inductance (H)
vm = 24; % source voltage amplitude (V)
% Range of frequencies and resistances
f = 60:1:110; % driving frequency (Hz)
R = 10:1:40; % resistance (ohms)
% Calculate amplitude of current
wd = 2*pi*f;
whos R
Name Size Bytes Class Attributes R 1x31 248 double
whos wd
Name Size Bytes Class Attributes wd 1x51 408 double
I = vm ./ sqrt(R.^2 + (wd*L - 1./(wd*C)).^2);
Arrays have incompatible sizes for this operation.
So R has 31 and wd has 51 elements so they can't be added together. Try using linspace to make sure they have the same number of elements.
% Circuit parameters
C = 15e-6; % capacitance (F)
L = 240e3; % inductance (H)
vm = 24; % source voltage amplitude (V)
% Range of frequencies and resistances
numElements = 51;
f = linspace(60, 110, numElements); % driving frequency (Hz)
R = linspace(10, 40, numElements); % resistance (ohms)
% Calculate amplitude of current
wd = 2*pi*f;
whos R
whos wd
I = vm ./ sqrt(R.^2 + (wd*L - 1./(wd*C)).^2);
plot(I, 'b.-', 'LineWidth', 2, 'MarkerSize', 20)
grid on;
xlabel('Index');
ylabel('I')

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSwitches and Breakers についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by