Clear Filters
Clear Filters

Calling text file in matlab

5 views (last 30 days)
muhammad ismat
muhammad ismat on 9 Jun 2015
Commented: muhammad ismat on 14 Jun 2015
if i have text file that has three column say
1 2 1
3 1 1
2 3 1
and also have a matrix s =
[0.3 0.4 0.6
0.1 0.5 0.7
0.2 0.11 0.9]
firstly: with respect to text file, i want to consider first column as i and second column as j then if the third column equal 1 then put its corresponding value in matrix s in new array say A else put remaining value in matrix s in new another array say B.
i.e i want this result
A=[0.4, 0.2, 0.7] B=[0.3, 0.6, 0.1, 0.5, 0.11, 0.9]
  2 Comments
Guillaume
Guillaume on 9 Jun 2015
Where do the values go if the third column is not 1? At present your rule is:
coordinate is present and third column is 1 -> put in A
coordinate not present -> put in B
what is the rule for
coordinate is present and third column is not 1 -> ??
muhammad ismat
muhammad ismat on 14 Jun 2015
i'm so sorry for more questions
we consider the coordinates that present are 1 2, 2 1,3 1, 1 3,2 3,3 2; i.e that present and its inverse so A=[0.4 , 0.1 , 0.2 , 0.6 , 0.7, 0.11] B=[0.3, 0.5, 0.9]
2- how to take percentage of variable A say 20% of values

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 9 Jun 2015
Edited: Andrei Bobrov on 9 Jun 2015
ii = [1 2 1
3 1 1
2 3 1];
s = [0.3 0.4 0.6
0.1 0.5 0.7
0.2 0.11 0.9];
[x,y,z] = size(s);
ij = num2cell(ii,1);
idx = sub2ind([x,y,z],ij{:});
A = s(idx);
B = s(setdiff(1:numel(s),idx));

More Answers (2)

Guillaume
Guillaume on 9 Jun 2015
I'll assume you know how to read the text file (use load). One way to do it:
coordinates = [1 2 1
3 1 1
2 3 1];
s = [0.3 0.4 0.6
0.1 0.5 0.7
0.2 0.11 0.9];
linindices = sub2ind(size(s), coordinates(:, 1), coordinates(:, 2))';
A = s(linindices)
B = s(setdiff(1:numel(s), linindices))

Walter Roberson
Walter Roberson on 9 Jun 2015
dlmread() or load() the text file into a matrix, and then work with it in memory.

Community Treasure Hunt

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

Start Hunting!