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

3 Ansichten (letzte 30 Tage)
>> % 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
>>

Akzeptierte Antwort

Image Analyst
Image Analyst am 14 Mär. 2023
% 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')

Weitere Antworten (0)

Kategorien

Find more on Circuit Envelope Simulation in Help Center and File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by