Converting the format Row Column Value into matrix ?
이전 댓글 표시
Hi everyone. The question as the title says is that i have an input text file which is in the format row-number column-number value and it has to be converted into a matrix
for example if the test.txt is
1 2 5
1 3 6
2 1 8
2 5 1
3 1 4
3 3 2
this will convert to
0 5 6 0 0
8 0 0 0 1
4 0 2 0 0
I was looking through the matrix indexing but i am very confused here. It would be great if someone could help me out here! Thanks!
p.s: Also note that there will be no overrides for any value in the matrix
edit: fixed the typo in the sample output
댓글 수: 2
Azzi Abdelmalek
2014년 8월 13일
How the result is related to your data?
답변 (4개)
Geoff Hayes
2014년 8월 13일
The following uses a for loop but that should be fine for this problem:
% load the data
A = importdata('test.txt');
% use max to determine the row and column dimension of the output matrix
dims = max(A);
% size the output matrix
mtx = zeros(dims(1),dims(2));
% iterate over each row of A and assign to the appropriate entry in mtx
for k=1:size(A,1)
mtx(A(k,1),A(k,2)) = A(k,3);
end
The answer, given your data, is
mtx =
0 5 6 0 0
8 0 0 0 1
4 0 2 0 0
Almost the same as yours except for the 2 replaces your 3.
S = spconvert(load('test.txt','-ascii'));
댓글 수: 2
You can then convert the matrix to full form if desired,
S=full(S);
but normally the original sparse form is what you want.
rya11111
2014년 8월 13일
Azzi Abdelmalek
2014년 8월 13일
A=[1 2 5
1 3 6
2 1 8
2 5 1
3 1 4
3 3 2]
n=max(A(:,1))
m=max(A(:,2))
out=zeros(n,m)
out(sub2ind([n m],A(:,1),A(:,2)))=A(:,3)
카테고리
도움말 센터 및 File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!