I have a mat-file of 1-by-500001 matrix. I want to create a 1000-by-1000 matrix from it. How to do this?

1 次查看(过去 30 天)
The file has number of elements want to use only first 1000 elements???? Help me... Thanx in advance..

回答(1 个)

dpb
dpb 2013-10-5
编辑:dpb 2013-10-5
Do you want the first 1000 elements or a 1k X 1k array as the title says? They're not commensurate.
Either way; pick the N that you want and then reshape
Say it's a 1K by 1K...
x=load('yourmatfile');
N=1000; % set the size desired for generality
x=reshape(x(1:N*N),N,N); % keep the N^2 first and reshape to square..
ADDENDUM:
x=load('yourmatfile');
N=1000; % set the size desired for generality
N=min(N,sqrt(length(x)); % modify to make fit if length(x)<N^2
x=reshape(x(1:N*N),N,N); % keep the N^2 first and reshape to square..
That'll fix the overrun error as also noted elsewhere but gets the solution into the Answers section...
  7 个评论
dpb
dpb 2013-10-5
编辑:dpb 2013-10-5
Don't send; attach it here.
But, can resolve the problem w/o the actual file -- see ERRATUM: posted above that accounts for actual length of the file instead of presuming the request was reasonable/possible.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by