Ich habe den Code zur Initialisierung des Vektors A1
erhalten.Große Anzahl von Intilization ein kleiner Vektor ohne For-Schleife?
Sc=[75 80 85];
Sp=[60 65 70];
C=[10 20 30 40 50 60;
11 21 31 41 51 61];
% KK=1000000;
% for k=1:KK
k=1;
A1=[];
A1=[-C(k,1)+max(60-Sc(1),0) -C(k,2)+max(60-Sc(2),0) -C(k,3)+max(60-Sc(3),0)
-C(k,4)+max(Sp(1)-60,0) -C(k,5)+max(Sp(2)-60,0) -C(k,6)+max(Sp(3)-60,0)];
%end; %KK
Der obige Code ist Arbeit, aber es ist nicht optimal (es ist sehr lang und ich brauche es neu schreiben, wenn Länge des Vektors, n
, geändert wird). In meiner Aufgabe ist die Länge A1
gerade und liegt typischerweise im Bereich 6<=n<=16
. Aber ich muss Vektor A1
die riesige Anzahl mal initialisieren, k<=10^6
. Ich möchte Code neu schreiben. Mein Code ist unten.
n= size(C,2);
M=60;
%KK=1000000;
% for k=1:KK
k=1;
AU=[];AD=[];
for i=1:n
if i<=n/2
AU=[AU, -C(k,i)+max(M-Sc(i),0)];
else
AD=[AD, -C(k,i)+max(Sp(i-n/2)-M,0)];
end %if
end % i
A1=[AU; AD]
% end; % KK
Frage. Ist es möglich, den Code ohne For-Schleife umzuschreiben? Ist es sinnvoll, wenn die Vektorlänge n
wesentlich kleiner ist als die Anzahl der Initialisierungen, k
?