Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to write mathematically, if possible, the following statement:

Given a vector $x=[1,4,5,3]$ and an integer $j=3$, find the position of $j$ in $x$?

How to write this mathematically?

If I am looking for the position of the minimum value in $x$, I would achieve this by $\arg\min x$.

I guess $j^*=\operatorname{arg\,find} (x=j)$ but $\LaTeX$ does not recognize this.

share|cite|improve this question
    
@Masacroso Or rather a comparison against each possible unidimensional projection in the original vector's coordinate system. – Kyle Strand Mar 30 at 16:52
3  
Us programmers would usually call it indexOf, if that helps. – OrangeDog Mar 30 at 17:50
2  
@OrangeDog How does that help? I see no programming here. – David Richerby Apr 1 at 0:24
    
I think in math you want to use the term '(finite) sequence' rather than 'vector'. (I doubt there's a standard mathematical notation for this, though, as I suspect it's a DP concept). – jcast Apr 1 at 15:26

10 Answers 10

up vote 22 down vote accepted

Usually this is written as "Let $i$ be such that $x_i = j$." But that's not very compact. There isn't any standard notation for this that I know of. You could use $\arg \max_i [x_i = j ]$ which uses Iverson brackets to make things compact.

share|cite|improve this answer
31  
That's a funny abuse of argmax, although I would say unreadable, the text version is much better. – dtldarek Mar 30 at 6:35
4  
One could instead use ​ max({i : x$_i$ = j}) ​ or ​ min({i : x$_i$ = j}) . ​ ​ ​ ​ – Ricky Demer Mar 30 at 21:48
    
Isn't that just "Einstein notation"? en.wikipedia.org/wiki/Einstein_notation – Aron Mar 31 at 4:59

If you want to talk about the $3$ in the vector $x=(1,2,3)$ then most people will just denote this element $x_3$ to indicate the third element of the vector.

If you are interested in the function that maps $x\to x_3$ then that function is denoted $\pi_3(x)$ and is called "the projection function (onto the third coordinate)". This function is pretty important in topology.

If you are interested in the function that tells you what index $k$ is, there isn't really a common notation for that because it's not necessarily a function. Besides, even when talking about it as a relation, in almost all circumstances if you know that $x$ contains a $3$, you can also just know which indices are $3$ and which are not as a consequences of knowing what x is

share|cite|improve this answer
8  
It's not just "not a commonly used function", it isn't necessarily a function at all. For the vector $x = (3,2,3)$ this could return 1 or 3. You need to define it more to get a sensible result. – Lacklub Mar 30 at 17:17
    
@Lacklub changed my comment there, thanks. – Stella Biderman Mar 30 at 19:51
    
Actually, that is a very common (and important) "function" (correspondence) in computer science. We call it which. – MichaelChirico Mar 30 at 23:04

If you consider the vector $x$ as a function from $[1, n]$ to $\mathbb{N}$, you can use the inverse $x^{-1}$. See https://en.wikipedia.org/wiki/Inverse_function#Preimages.

In your example, if $x=(1,4,5,3)$ then $x^{-1} (\lbrace 3 \rbrace) = \lbrace 4 \rbrace$.

As Jonathan Gafar remarked, the inverse set might contain more than one element. Then you can use a minimum to get the first one.

For example, if $x=(1,2,5,7,2)$ then $x^{-1} (\lbrace 2\rbrace)= \lbrace 2, 5 \rbrace$ and $\min x^{-1} (\lbrace 2\rbrace) = 2$.

However, I don't recommend to use this notation without a proper introduction or definition, since the inverse symbol might be ambiguous.

share|cite|improve this answer
5  
The inverse set can also be empty, so remember to handle or rule out that possibility before applying $\min$. – filipos Mar 30 at 13:06
    
the minimum of an empty set is usually defined to be +infinity, so that should not be a problem. But you are right that you should not assume that you get a sensible index back, as the element may not have any pre-images. – hkBst Apr 1 at 9:57

In my opinion you should use plain text or perhaps define such a function yourself if you need it frequently. Of course, if you have plain-text definition, you can still add a formula, if you feel that it will help the potential reader.

We define $\operatorname{arg\,find}(v,\alpha)$ to be the index of the first occurence of $\alpha$ in $v$ or to be equal to $\operatorname{length}(v)+1$ if there is no such index. $$\operatorname{arg\,find}(v,\alpha)=\min\{i \in \mathbb{N}^+\mid i>\operatorname{length}(v)\lor v_i=\alpha\}$$ where $v_i$ denotes the $i$-th coordinate of the vector $v$.

I hope this helps $\ddot\smile$

share|cite|improve this answer
2  
I like the use of the one-past-the-last index to indicate that the vector does not contain the specified value. – Kyle Strand Mar 30 at 16:55
    
Then it should be ${\rm arg\,first}(v,\alpha)$ – ja72 Mar 31 at 17:01

A function $f$, to find the position of an integer $j$, within in a vector $x$ (of size $n$).

In the case that the integer $j$, may only occur once in the vector $x$:

The desired function can be composed of a sum $\sum$, and the delta function $\delta$.

Where the delta function is defined as $\quad\delta(a) := \begin{cases}0&a\neq0\\1&a=0\end{cases}$

$$f(x,j) = \sum_{i=1}^ni\delta(x_i-j)$$ (If zero is returned from this function, the vector does not include an element equal to $j$)

$$x=[1,4,5,3], \quad j =3$$

$$f\big([1,4,5,3], 3\big) = 1\delta(x_1-3) + 2\delta(x_2-3) + 3\delta(x_3-3)+ 4\delta(x_4-3)$$ $$=1(0)+2(0)+3(0)+4(1)$$ $$=4$$


In the case that the integer $j$, may occur more than once, and all occurrences are to be found (as a set):

The desired function can be composed of a union $\cup$, and the delta function $\delta$.

$$f(x,j) = \bigcup_{i=1}^ni\delta(x_i-j)\setminus 0$$ (If the empty set is returned from this function, $x$ does not include the element $j$)

$$x = [3,4,5,3], \quad j = 3$$

$$f\big([3,4,5,3], 3\big) = 1\delta(x_1-3) \cup 2\delta(x_2-3) \cup 3\delta(x_3-3) \cup 4\delta(x_4-3)\setminus 0$$ $$= 1(1)\cup2(0)\cup3(0)\cup4(1)\setminus 0$$ $$= \{1,0,4\}\setminus 0$$ $$= \{1,4\}$$

share|cite|improve this answer
12  
A perfect way to obscure your intention! – dtldarek Mar 30 at 8:47
    
Very nice and clever solution, if not obfuscated. ;) – Cᴏɴᴏʀ O'Bʀɪᴇɴ Mar 30 at 13:50
1  
Clever and neat, but gives... interesting results when the value occurs more than once (ie. gives the sum of indices). +1 for returning 0 when no match exists – Lacklub Mar 30 at 17:24

So what you mean is, given some argument, return the component of the vector which contains that argument? So if $x = (1,3,4,2,6)$, then you would ask to find the position of $4$, and the result would be the third component of $x$?

Note that such a function would not be well-defined (if defined on all $n$-tuples). For example, if $x = (1,2,5,7,2)$, and you asked to find the position of $2$, then would the function return the second component or the fifth component? You would have to make a choice.

share|cite|improve this answer
5  
it is also not defined if the vector does not contain the value of course – jk. Mar 30 at 10:20

Your question can be understood at least 2 ways.

(1) : you want a way to write this. I would suggest, given that there may be several such indices,

$$\{i : x_i=j\}.$$

If you can assume there is only one, then just let $i : x_i=j$.

(2) : you want to define a new notation. Everything is possible, one could for instance define a position function:

$$\text{pos}(j,x):=\min\{i : x_i=j\}.$$

share|cite|improve this answer
    
+1 this is the proper answer. – Mehrdad Mar 31 at 8:08

If you tell the reader to think of $x$ as a function, you can denote this $x^{-1}(j).$

More explicitly, let $\underline{4} = \{0,1,2,3\}$. Tell the reader to think of $x$ as a function $x : \underline{4} \rightarrow \mathbb{Z}$. Then the set of all $i \in \underline{4}$ satisfying $x(i) = j$ is denoted $x^{-1}(j)$.

share|cite|improve this answer

Vector dot products do this. If you want the second element of a vector $X$, then $X \cdot \langle0, 1, 0, 0, 0\rangle $will give you that component if $X$ is a five-dimensional vector.

share|cite|improve this answer
5  
That isn't what the question is asking for. We're not trying to find the value in a particular position, but the position of a particular value. – Nate Eldredge Mar 31 at 3:21

You could write code that does this, if you'll consider that a "mathematical function."

Write a $for$ loop which iterates over the elements of the array, checking if the position at the loop index is the same as the element you want to find. If you find an element where there is a match, break out of your loop. If not, return that no such element exists in the array.

share|cite|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.