| Transpoosi.java |
1 package tentti09;
2
3 /**
4 * Luodaan matriisin transpoosi.
5 * Algoritmi:
6 * <pre>
7 * 0. olkoon matriisi a
8 * 1. luodaan matriisi jossa rivejä yhtä paljon kuin a:ssa rivejä
9 * ja sarakkeita yhtä paljon kuin a:ssa rivejä
10 * 2. käydään läpi kaikki a:n rivit indeksillä ir
11 * 3. jokaisella rivillä käydään läpi kaikki sarakkeet indeksillä is
12 * 4. tulosmatriisi[is][ir] = a[ir][is]
13 * </pre>
14 *
15 * @author vesal
16 * @version 17.12.2009
17 */
18 public class Transpoosi {
19
20 /**
21 * Luodaan matriisin transpoosimatriisi.
22 * Oletetaan kaikki rivit yhtä pitkiksi.
23 * @param a transponoitava matriisi
24 * @return a:n transpoosi
25 * @example
26 * <pre name="test">
27 * #import java.util.Arrays;
28 * double[][] a1 = {{1,2},{3,4}};
29 * Arrays.deepToString(transpoosi(a1)) === "[[1.0, 3.0], [2.0, 4.0]]";
30 * double[][] a2 = {{1,2,3},{4,5,6}};
31 * Arrays.deepToString(transpoosi(a2)) === "[[1.0, 4.0], [2.0, 5.0], [3.0, 6.0]]";
32 *
33 * </pre>
34 */
35 public static double[][] transpoosi(double a[][]) {
36 double[][] at = new double[a[0].length][a.length];
37 for (int ir=0; ir < a.length; ir++)
38 for (int is=0; is<a[0].length; is++)
39 at[is][ir] = a[ir][is];
40 return at;
41 }
42 }
43