Hello, is there any way I can define a matrix NxN whose elements are different real numbers between 0 and 5?
2 ビュー (過去 30 日間)
古いコメントを表示
Hello, is there any way I can define a matrix NxN whose elements are different real numbers between 0 and 5?
0 件のコメント
回答 (4 件)
Azzi Abdelmalek
2013 年 10 月 13 日
N=5
out=reshape(linspace(0,5,N*N),N,N)
2 件のコメント
Azzi Abdelmalek
2013 年 10 月 13 日
編集済み: Azzi Abdelmalek
2013 年 10 月 13 日
M=rand(N)*5
M(randi(N*N))=0
M(randi(N*N))=5
Image Analyst
2013 年 10 月 13 日
In your comments, you specified both 0 and 1 as the lowest value, so I made it flexible enough to handle either one:
N = 10; % Whatever you want
lowestValue = 1; % or 0 - whichever you want.
highestValue = 5;
theMatrix = lowestValue + (highestValue - lowestValue) * rand(N)
% Zero out first and last rows.
theMatrix(1,:) = 0;
theMatrix(end,:) = 0;
% Zero out first and last columns.
theMatrix(:,1) = 0;
theMatrix(:,end) = 0;
4 件のコメント
Image Analyst
2013 年 10 月 13 日
編集済み: Image Analyst
2013 年 10 月 13 日
Like I said in the code, just change lowestValue:
lowestValue = 0;
What about the requirement that the outer edges of the array be zero? Recall where you said "the columns 1 and 2002 and the rows 1 and 2002 to be 0 " - to me, that means that column 1 and column 2002 (or the last column if N is different that 2002) should equal exactly 0. And the same for the first and last row - they are all zero. Again, is this still required? If not, just don't do the zeroing out and do:
N = 2002; % Whatever you want
lowestValue = 0; % or 1 - whichever you want.
highestValue = 5;
theMatrix = lowestValue + (highestValue - lowestValue) * rand(N)
Essentially (in an inflexible, hard coded manner):
theMatrix = 5 * rand(2002)
Did you follow what I said in my prior comment about never being able to hit any particular number exactly ?
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!