Java examples for java.lang:Math Matrix
Matrix column Shift
/******************************************************************************* * Copyright 2013 Karlsruhe Institute of Technology. This Work has been partially supported by the EIT ICT Labs funded research project Towards a Mobile Cloud (activity CLD 12206). * //from ww w . j av a 2s . c om * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ //package com.java2s; public class Main { public static int[][] columnShift(int[][] input, int shiftBy) { if (shiftBy == 0) { return input; } int rows = input.length; int columns = input[0].length; for (; shiftBy < 0; shiftBy += columns) { // Using % mod operator to come back to a +ve column value wont work. // So we're shifting the shiftBy value (above) until it's in the appropriate // range 0 .. columns-1 } int[][] output = new int[rows][columns]; for (int r = 0; r < rows; r++) { for (int c = 0; c < columns; c++) { output[r][(c + shiftBy) % columns] = input[r][c]; } } return output; } public static double[][] columnShift(double[][] input, int shiftBy) { if (shiftBy == 0) { return input; } int rows = input.length; int columns = input[0].length; for (; shiftBy < 0; shiftBy += columns) { // Using % mod operator to come back to a +ve column value wont work. // So we're shifting the shiftBy value (above) until it's in the appropriate // range 0 .. columns-1 } double[][] output = new double[rows][columns]; for (int r = 0; r < rows; r++) { for (int c = 0; c < columns; c++) { output[r][(c + shiftBy) % columns] = input[r][c]; } } return output; } }