1

私はこのコードを書きましたが、問題なく動作しますが、可能であれば 2 つの for ループを削除して最適化したいと考えています。どうすればこれを達成できるか考えている人はいますか? どうもありがとう!

chosen_runs = [2:5];

% Configurations for each test in order
XY = [0 1; 0 1; 0 9; 0 1; 0 2; 0 3; 0 4; 0 5; 11 12; 11 12];

% Inductance Matrix
LMat = [0.0045  0.0045  0.0045  0.0044  0.0044  0.0044  0.0044  0.0044  0.0043  0.0043;
        0.0045  0.0046  0.0046  0.0045  0.0045  0.0045  0.0045  0.0044  0.0044  0.0044;
        0.0045  0.0046  0.0046  0.0046  0.0046  0.0046  0.0045  0.0045  0.0045  0.0045;
        0.0044  0.0045  0.0046  0.0047  0.0047  0.0047  0.0046  0.0046  0.0046  0.0046;
        0.0044  0.0045  0.0046  0.0047  0.0048  0.0048  0.0047  0.0047  0.0047  0.0046;
        0.0044  0.0045  0.0046  0.0047  0.0048  0.0048  0.0048  0.0048  0.0048  0.0047;
        0.0044  0.0045  0.0045  0.0046  0.0047  0.0048  0.0049  0.0049  0.0049  0.0048;
        0.0044  0.0044  0.0045  0.0046  0.0047  0.0048  0.0049  0.0050  0.0049  0.0049;
        0.0043  0.0044  0.0045  0.0046  0.0047  0.0048  0.0049  0.0049  0.0050  0.0050;
        0.0043  0.0044  0.0045  0.0046  0.0046  0.0047  0.0048  0.0049  0.0050  0.0051];

% Declaration of Variables
runs = chosen_runs;
num = length(runs);
in_point = zeros(num,1);
out_point = zeros(num,1);
L_Mid = zeros(10,num);
L_Sides = zeros(10,num);

%%%%%%%%%%%%%%%%%%%%%%%%%%

in_point = XY(runs,1);    % Creates a column vector each row of which is the in_point for a chosen run
out_point = XY(runs,2);   % Creates a column vector each row of which is the out_point for a chosen run

in_point
out_point

for k = 1:10
    for l = 1:num

        L_Mid(k,l) = sum(LMat(k,1+in_point(l):out_point(l)));     % Creates a matrix, each column of which is the inductance (in between current leads) for a chosen run, each row is a different layer in the solenoid.
        L_Sides(k,l) = sum(LMat(k,:))-L_Mid(k,l);    % Creates a matrix, each column of which is the inductance (either side of the current leads) for a chosen run, each row is a different layer in the solenoid.

    end
end

L_Mid
L_Sides
4

1 に答える 1