Några extra övningar på vektorisering

Lösningsförslagen hittar du i en, lång fil, vektor.m

Övningarna är osorterade. Det enklaste kommer inte först och den svåraste kommer inte sist. De flesta, men inte alla, övningarna kan lösas utan for-loopar. Så vektorisera så mycket du kan. Observera att många av övningarna kan lösas på flera sätt (och alla kan lösas utan vektorisering, men då tränar man ju på en annan problemlösningsmetod). Jag påstår inte att alla övningarna är viktiga tillämpningar, en del har karaktären av knep och knåp, men de ger ändå träning på vektorisering.

Tag bort allt utom tecknen a, b, ..., z i en sträng.

Tag bort allt utom tecknen a, b, ..., z i en sträng. Tag dessutom bort q.

Du har en kvadratisk matris. Beräkna den största diagonalsumman (av alla sub- och super-diagonaler som är parallella med huvuddiagonalen).

Skapa följande matris.

Givet vektorn v, beräkna summan v(1) + v(3) + v(5) + ... . Du kan anta att length(v) är udda.

Beräkna 1 / 1^2 + 1 /  2^2 + 1 / 3^2 + ... + 1 / n^2 utan att använda en for-loop

Det gäller att 1 / 1^2 + 1 /  2^2 + 1 / 3^2 + ... + 1 / n^2 -> pi^2/6, när n -> oändligheten.
Plotta, med semilogy, skillnaden mellan seriens summa och partialsummorna när n = 1000;

Skapa en 5x5-matris, där kolonn k innehåller värdet k fem gånger.

Låt x = 1.1. För vilket k är  x^k / k^2 minst, då k = 1, 2, 3, ..., 100? Vad är det minsta värdet?

Plotta, i samma figur, funktionsytorna z = 0.1 x^2 + 0.2 y^2 och z = 1 - 0.1 x^2 - 0.2 y^2. Plotta även skärningskurvan mellan ytorna.

Bilda den matris man får om man sätter M = magic(8) och nollställer elementen som ges av
diag(M, -7), diag(M, -6), diag(M, -5), diag(M, 5), diag(M, 6), diag(M, 7).

Bilda en matris i form av schackbräde. Första raden skall vara [1 0 1 0 1 0 1 0], andra raden [0 1 0 1 0 1 0 1] etc.

Beräkna medelvärdet av alla elementen i en matris A.

Du har en lång vektor v och vill skapa en ny vektor, w, där elementen har kastats om parvis, dvs w = [v(2), v(1), v(4), v(3), v(6), v(5), ...].
Du kan anta att v har ett jämnt antal element.

Givet vektorn v, sätt v(k) = k om k < 0.

Givet en matris A, bilda en ny matris S, där S(j, k) = 1 om A(j, k) > 0, S(j, k) = 0 då A(j, k) <= 0.

Kontrollera om en matris har samma antal ickenollor i alla rader och kolonner.

Bilda en vektor av glidande medelvärden, [v(1)/1, (v(1)+v(2))/2, (v(1)+v(2)+v(3))/3, ...]

Beräkna antalet unika element i en matris M.

Bilda matrisen vars första rad är [1, 2, 3, ..., 10], vars nästa rad är [10, 11, ..., 19], ändå nästa [100, 101, 102, ..., 109] etc. ett lämpligt antal rader.

Bilda en matris som är noll förutom i de två huvuddiagonalerna, de första och sista raderna och första och sista kolonnerna där elementen skall vara ett.

Beräkna summan 1 - 1 / 2^2+ 1 / 3^2 - 1 / 4^2 +... med ett lämpligt antal termer. Serien konvergerar mot pi^2 / 12.

Låt strängvariabeln s innehålla ditt förnamn, t.ex. s = 'Thomas'. Bilda matrisen:

Thomas
h    a
o    m
m    o
a    h
samohT

Givet, en sträng, byt stora bokstäver mot små och tvärtom. Ledning: isstrprop

Givet en vektor. Bestäm det första talet (och motsvarande index) i vektorn som är större än ett. Analogt för det sista talet.

Vektorerna x och y innehåller koordinater för punkter. Bestäm vilken punkt som ligger längst bort från origo.