Monday, August 31, 2015

Quadrants of a matrix in Matlab

Intention of the program is to take the scalar as the argument names n and to return the matrix of size 2nx2n. Such that the elements of the matrix will be like The elements of the submatrix in the top left corner are all 1s the elements of the submatrix at the top right are 2s the elements in the bottom left are 3s and the elements in the bottom right are 4s.

function [Q] = quadrants(n)
Q = [ones(n) ones(n)+1 ; ones(n)+2 ones(n)+3];
end

Monday, August 10, 2015

How much time robot will take to fell in ditch

A robot is programmed to move forward F meters and backwards again, say B meters, in a straight line. The Robot covers 1 meter in T units of time. On Robot's path there is a ditch at a distance FD from initial position in forward direction as well as a ditch at a distance BD from initial position in backward direction. This forward and backward movement is performed repeatedly by the Robot.
Input Format:

First line contains total number of test cases, denoted by N
Next N lines, contain a tuple containing 5 values delimited by space
F B T FD BD, where

  1. F denotes forward displacement in meters
  2. B denotes backward displacement in meters
  3. T denotes time taken to cover 1 meter
  4. FD denotes distance from Robot's starting position and the ditch in forward direction
  5. BD denotes distance from Robot's starting position and the ditch in backward direction

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Catch22
{
    public static void main(String[] args) throws FileNotFoundException, IOException
    {
        BufferedReader br;
        br = new BufferedReader(new FileReader(args[0]));
        String line;
        int loc = 0 ,numOfTestCases = 0;
        int F,B,T,FD,BD,distanceFromCenter , totalDistanceCovered;
        while( ( line = br.readLine()) != null )
        {
            distanceFromCenter = 0;
            totalDistanceCovered = 0;
            ++loc;
            if ( loc > (numOfTestCases+1))
            {
                break;
            }
            else if ( loc == 1)
            {
                numOfTestCases = Integer.parseInt(line.trim());
                continue;
            }
            String[] tokens = line.trim().split("\\s+");
            F = Integer.parseInt(tokens[0].trim());
            B = Integer.parseInt(tokens[1].trim());
            T = Integer.parseInt(tokens[2].trim());
            FD = Integer.parseInt(tokens[3].trim());
            BD = Integer.parseInt(tokens[4].trim());
            if ( ( F == B) && ( F < FD) )
            {
                System.out.println("No Ditch");
                continue;
            }
            else
            {
                distanceFromCenter = F;
                totalDistanceCovered = F;
                while (true)
                {
                    if ( distanceFromCenter >= FD)
                    {
                        int time = (totalDistanceCovered+(FD-distanceFromCenter)) * T;
                        System.out.println(time+" F");
                        break;
                    }
                    distanceFromCenter = distanceFromCenter - B;
                    totalDistanceCovered = totalDistanceCovered + B;
                    if ( distanceFromCenter < 0 )
                    {
                        if ( (-1*distanceFromCenter) >= BD)
                        {
                            int time = (totalDistanceCovered+(BD-(-1*distanceFromCenter))) * T;
                            System.out.println(time+" B");
                            break;
                        }
                    }
                    distanceFromCenter = distanceFromCenter + F;
                    totalDistanceCovered = totalDistanceCovered + F;
                }
            }
        }
    }
}

Sunday, August 2, 2015

Mtable using matlab

function [mt , s] = mtable( n , m)
mt = zeros(n,m);
for c = 1 : m
    for r = 1 : n
        mt(r,c) = c*r;
    end
end
s = sum(sum(mt));
end

Identity using matlab

function [Q] = identity(n)
Q = zeros(n,n);
for c = 1 : n
    for r = 1 : n
        if c == r
            Q(r,c) = 1;
        end
    end
end
end

Checkerboard using matlab

function [ Q ] = checkerboard( n , m )
Q = ones(n,m);
for c = 1 : m
    for r = 1 : n
        if mod(r,2) == 0 && ~mod(c,2) == 0
            Q (r,c) = 0;
        elseif ~mod(r,2) == 0 && mod(c,2) == 0
            Q (r,c) = 0;
        end
    end
end
end

Randomness using matlab

function [Q] = randomness (limit , n , m )
Q = 1 + floor(rand(n,m)*limit);
end

Quadrants using matlab

function [Q] = quadrants(n)
Q = [ones(n) ones(n)+1 ; ones(n)+2 ones(n)+3];
end

DC motor control with Pulse Width Modulation Part 1

DC Motor intro DC motor is a device which converts electrical energy into kinetic energy. It converts the DC power into movement. The typica...