Extract numbers from Matrix and create a matrix
조회 수: 3 (최근 30일)
이전 댓글 표시
An M-by-M matrix X is given. Without using loops, extract values from matrix X to create the following:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/155582/image.jpeg)
%Generate an MxM matrix X. For part iv), X must have an even number of rows %and columns.
M = randi([20 40], 1);
M = M + mod(M,2);
X = magic(M);
===================================================
Maybe I just don't understand the problem.. how do I create a matrix for problem A, the dimension of matrix A is not given?
This is what I got for A, Is there a better answer than
A = a(:,1:2:end);
for problem A?
=====================================================
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/155585/image.jpeg)
Any body knows how to do B and C, I need some hints
댓글 수: 0
채택된 답변
Amit
2014년 1월 25일
편집: Amit
2014년 1월 25일
For problem A, you are looking for odd rows and column, so the indexes should go for 1 with an increment of 2.
Like
A = X(1:2:end,1:2:end); % end simply represents the end
For B: you are excluding the first and last, so the indexes should exclude those.
B = X(2:end-1,2:end-1);
For C, I'd say first write down the indexes you're looking for on a piece of paper and see if you see a pattern. Post, even if it is wrong, and I'll tell you how to do it.
Sometimes it is easy to write out on a a piece of paper the indexes because it help you visualize.
댓글 수: 3
추가 답변 (1개)
Johnny
2014년 1월 26일
편집: Johnny
2014년 1월 26일
댓글 수: 1
Amit
2014년 1월 26일
Your solution is a very good solution. I am glad you figured out diag. Other way would be: Lets say its a 5X5 matrix
C = [X(2:6:end)' X(6:6:end)'] % This method uses Linear indexing
Good luck in your studies and I hope you learn significantly about MATLAB Programming :)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!