Experiment with the small test matrix, C/C++ Programming

For this assignment, I've provided a data file called 'elevation.mat', which contains the elevation data you'll be working with.  

Type load elevation.mat to get the variable map, which is a matrix of heights (in meters) for a region near Springfield.  You also get a small matrix test that is 10x10, on which you can experiment to make sure your code is behaving sensibly.

As a first step, display the map as a shaded image with


axis equal;

colormap gray;






(0, 0)






Now, here's the function you'll be implementing for this first part.  Every pixel P that is not on the boundary of the image has eight neighbors (above, below, left, right, and four diagonal neighbours).  Let's denote P as the pixel at row r and column c - I'll use (r, c) as shorthand for this. Water follows the path of steepest descent, so we would like to know, for each non-boundary pixel, the direction to the lowest height of the 9 cells around P, including P itself. One way to do that is to store, for each map point (r, c), both the row and the column offsets to its lowest neighbor. We can record these offsets in two matrices (one for rows, one for columns), each containing only the numbers  -1, 0, and +1. Look at the figure to see how these numbers map to the neighbours of a given pixel. As an example, if the lowest neighbour for pixel (r, c) is the pixel directly above, you would store the corresponding offsets of -1 and 0 at location (r, c) in the two offset matrices.

Since border pixels don't have all neighbours defined, let's assign boundary pixels to have both offsets zero.

Thus, for this first part, write and turn in a function that looks like:

function [roffset, coffset] = findLowNhbr(map)

This functions returns two matrices of the same size as map, so that pixel (r,c) in the map has pixel (r+roffset(r,c), c+coffset(r,c)) in the map as its lowest neighbour. 

What to submit: For this part, you do not need to turn in any output -include your m-file in the zip file, and also place the code for the function into the published html, as follows:

type findLowNhbr;   % put this line into the cell for Part 1 in solutionWatersheds.m

You may want to experiment with the small test matrix to check if your code is giving you reasonable results (for this small 10x10 test matrix, you should be able to calculate the offsets by hand).

A note on coding: Try to be as general as possible in your code. One example of this is to use statements such as [nrows,ncols] = size(map); to assign the numbers of rows and columns to variables nrows and ncols.  If you use nrows and ncols instead of the numbers, then you can run your code on any size maps without modification.

Posted Date: 3/29/2013 2:54:04 AM | Location : United States

Related Discussions:- Experiment with the small test matrix, Assignment Help, Ask Question on Experiment with the small test matrix, Get Answer, Expert's Help, Experiment with the small test matrix Discussions

Write discussion on Experiment with the small test matrix
Your posts are moderated
Related Questions
A: Something to let your class to grant access to another class or function. Friends may be either classes or functions. Class grants access privileges to its friends. In genera

What are header files? What are their uses? - Header files are also known as library files. - They carry two significant things: definitions and prototypes of functions bein

A: In C++ the access privileges are public, private and protected. The default access level assigned to members of a class is private. Private members of any class are accessible o

given integer ''n'' and permutation of numbers 1,2,..n-1, c program to print permutation that lexicograghically precedes given input permutation if permutation is least print input

A palindrome is a string that reads the same from both the ends. Given a string S convert it to a palindrome by doing character replacement. Your task is to convert S to palindrome

Explain Operators in C Language? The C language is very rich in built - in - operators and it places more significance on operators than do most other computer languages. The C

In this project, you will write a software for the Registrar's office of a university called YouOIT to maintain information about students and courses at the university. The reg

Custom Scans and Alerts Think or Swim Project Description: I am seeking somebody to make me several Custom Scans and Alerts on Thinkorswim TOS Skills required are C++ Prog

how can I write a c++ program that generate all evn numbers less than 1000?

What are the various types of control structures in programming? - Primarily there are 3 types of control structures in programming: Sequence, Selection and Repetition. - Se