Forum: Digitale Signalverarbeitung / DSP / Machine Learning kurze matlab Frage


von flex (Gast)


Lesenswert?

Moin kurze matlab frage. wie schreib ich den code ohne for schleife

clear all
close all


i(1,:)=[1, 2, 3 ,4]; %erster String mit Skalierung
i(2,:)=[5, 6, 7 ,8]; %der mittelwert aus jeder zeile ergibt die 
skalierung

a(1,:)=[1, 2, 3 ,4]; %zweiter String mit zu skalierenden werten
a(2,:)=[25, 26, 27 ,28];

i=i'
i=mean(i)

%wie schreib ich das ohne for schleife
for l=1:2
a(l,:)=a(l,:).*i(l)
end;

von Johannes D. (balou)


Lesenswert?

doc repmat
a .* repmat(i',1,length(a))

von Johannes D. (balou)


Lesenswert?

Geht auch mit ones...
tic
repmat(i',1,length(a))
toc
tic
i'*ones(1,length(a))
toc

Grüße
Johannes

von flex (Gast)


Lesenswert?

oh super dankeschön!

von Detlef_A (Gast)


Lesenswert?

>> a(l,:)=a(l,:).*i(l)

Das 'l' lieber nicht als Variablennamen nehmen, das verwechselst Du mit 
der '1'.

Cheers
Detlef

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.