Matrix Help
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a matrix similar to the following
C = 1 2 4 5
3 4 5 6
6 4 2 1
each of these values have been calculated as a function of x and y. Say
x = a b c d
y = f g h
This corresponds to x as so
C = 1(f, a) 2(f, b) 4(f, c) 5(f, d)
3(g, a) 4(g, b) 5(g, c) 6(g, d)
6(h, a) 4(h, b) 2(h, c) 1(h, d)
Say I want to get the corresponding x and y values for a value in C, how would I do this?
1 Kommentar
Jan
am 24 Nov. 2011
The question is not getting clear to me.
E.g. if you have 6 as input, what is the expected output? What do the symbols "a", "b", "c" etc mean? Are they numbers, indices, symbolic expressions, functions?
Antworten (2)
David Young
am 24 Nov. 2011
As Jan comments, your question is not clear. Like him, I can't understand the role of the symbols a, b etc. which just seem to correspond to the subscripts for the matrix, with a=1, b=2, c=3, d=4, f=1, g=2, h=3. If so, they are redundant, and it's simpler to use numerical subscripts.
Guessing a bit, perhaps your question is simply asking what the subscripts are for a particular value in C. So C(3) is at x=1, y=2. If that's right, the answer is this:
[y, x] = find(C == 3)
which returns the x and y coordinates for the value 3. Note the reversal in order of y and x in the results list. If you use 6 rather than 3 you will get vectors for x and y each with 2 subscripts, because 6 is found at x=4,y=2 and also at x=1,y=3.
If you were asking something more complex, please clarify.
0 Kommentare
Andrei Bobrov
am 24 Nov. 2011
e.g.
i1 =[4 16 14 11]
j1 =[8 1 4]
x =[5 -6 -2 2
0 -11 -8 -4
6 -8 -8 -6]
f1 = @(i1,j1)bsxfun(@minus,bsxfun(@plus,x,i1),j1')
C = f1(i1,j1)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!