MATLAB Matrice Function Question help please?

I am trying to write a matlab program which creates an n by n matrix with the following:
a = [0 1 2 3 4; 1 0 1 2 3; 2 1 0 1 2; 3 2 1 0 1; 4 3 2 1 0]
How would I go about doing this?
42 minutes ago
- 4 days left to answer.
Additional Details Also looking like this:
a =
0 1 2 3 4
1 0 1 2 3
2 1 0 1 2
3 2 1 0 1
4 3 2 1 0
Some detailed instruction/help would really help me in clarifying how to program matrices in general.

 채택된 답변

Kye Taylor
Kye Taylor 2012년 4월 5일

2 개 추천

It's a toeplitz matrix... so use the command
toeplitz(0:4)
to recreate your example. I'm sure you can extrapolate to the general n-by-n case.
More generally, if you want to create a matrix, use an array creation function like toeplitz, ones, rand, (type
doc elmat
and check out 1.) the list of Specialized matrices at the bottom of the help file and 2.) the list of elementary matrices at the top of the file.)
Beyond array creation functions, you can concatenate values both horizontally and vertically to create a vector/matrix/high d array. One way to concatenate is with square braces. For example, to concatenate 1 and 2 horizontally, use the command
v = [1,2]
That is, commas in square brackets can be interpreted as horizontal concatenation. To concatenate vertically, use the command
v = [1;2]
That is, semicolons in square brackets can be interpreted as vertical concatenation.
To build a matrix, construct it row-by-row sequentially from the first row to the last row. For example, the command
a = [0,1,2,3,4;1,0,1,2,3]
constructs the first row (0,1,2,3), then concatenates vertically (;) the second row (1,0,1,2,3);
That may not be the clarification you were looking for, so let me know if I can clarify.

댓글 수: 2

Reelz
Reelz 2012년 4월 6일
****** I am specifically looking how to do this in the editor window. where we start off function = ( )
Your answer did help me, I am just confused on using the editor window. Help in that area would be awesome!
I like Image Analysts approach below... you could simplify with just
function m = makeToeplitz(n)
m = toeplitz(0:n);

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Image Analyst
Image Analyst 2012년 4월 6일

0 개 추천

For example, write this in the editor window (Use File->New if you have to, or click the blank page icon to get a new editor window):
function m = test1(n)
if nargin >= 1
m = toeplitz(0:n);
else
m = toeplitz(0:4); % Default
warningMessage = sprintf('Using default n of 4');
uiwait(warndlg(warningMessage));
end
and save it as test1.m. Then you can run it without any args and it will use a default of 4, or you can say
>> test1(5)
and it will use an n of 5.

댓글 수: 3

Reelz
Reelz 2012년 4월 6일
This is what I recieved when using your code:
>> m = test1(4)
??? Error: File: toeplitz.m Line: 2 Column: 6
Unbalanced or unexpected parenthesis or bracket.
Error in ==> test1 at 3
m = toeplitz(0:n);
*Also a question, is what does this mean in your code? I'll paste it below I am just confused on this command since I have never seen it.
warningMessage = sprintf('Using default n of 4');
uiwait(warndlg(warningMessage));
You have accidentally saved a file under the name toeplitz.m . Remove your file with that name.
Impressive debugging :)

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

질문:

2012년 4월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by