Info
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
How to build a matrix like this
조회 수: 1 (최근 30일)
이전 댓글 표시
if we have a number n, we want a matrix like this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/166748/image.jpeg)
So one simple example is:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/166749/image.jpeg)
What is the best way to build this?
댓글 수: 0
답변 (4개)
Kuifeng
2017년 8월 18일
The following works, not the 'best' way...
n = 5;
A = [n:-1:1]';
for i = 2:n
A(:,i) = A(:,i-1);
A([1:i],i) = n-(i-1);
end
댓글 수: 3
Kuifeng
2017년 8월 18일
Thank you Jose-Luis and Stephen, I noticed this red wave below for some time already, but didnt know why. You cleared my doubt. Good to learn.
Robert U
2017년 8월 18일
편집: Robert U
2017년 8월 18일
Hi Rui Zhu,
another possibility:
function [ A ] = SpecMatrice( n )
tic
A = zeros(n);
for ik = 1:n
A(1:ik,1:ik) = A(1:ik,1:ik) + 1;
end
t = toc;
sprintf('MySolution took %.2f µs',t*1e6)
end
On my PC that solution is for low values of n faster than the presented above. Here values for n=4:
Solution 1 took 806.82 µs
Solution 2 took 888.93 µs
Solution 3 took 441.34 µs
MySolution took 109.33 µs
For high values of n solution 2 & 3 gain speed a lot while solution 1 and MySolution get slowlier due to looping.
Kind regards,
Robert
댓글 수: 0
이 질문은 마감되었습니다.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!