How can I write a function that gives out a matrix with the specified rows and columns?

1 view (last 30 days)
Write a function getfancyrectangle(R,C) that takes the number of rows and columns and returns a string as a character matrix, containing a "fancy" rectangle filled with alternating '@' and '#' characters.
For example:
R=2
C=3
@#@
#@#
  2 Comments
Jan
Jan on 27 Oct 2014
This is obviously a homework question. As usual we will not solve it for you, such that you keep the chance to submit a solution without cheating.
Better post, what you have tried so far and ask a specific question.
S
S on 28 Oct 2014
Edited: per isakson on 28 Oct 2014
This is what I have so far. However, everytime I try to run the function it says there is an error and that I don't have enough input arguments. What does this mean?
function s = getfancyrectangle(R,C)
% R=4; C=5;
if mod(R,2)==0
s = getfancyrectangle(R+1,C);
s(end,:)= [];
else
s = repmat('#',R,C);
s(1:2:end) = '@';
end
end

Sign in to comment.

Answers (2)

Jan
Jan on 27 Oct 2014
A hint:
n = 10;
x = repmat(1, 1, n);
x(2:2:n) = 2;

per isakson
per isakson on 28 Oct 2014
Edited: per isakson on 28 Oct 2014
Your function as of the comment works nicely
>> s = getfancyrectangle( 4, 5 )
s =
@#@#@
#@#@#
@#@#@
#@#@#

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!