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