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

2 次查看(过去 30 天)
>> % 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 CenterFile Exchange 中查找有关 Switches and Breakers 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by