How to plus between indices?
Ältere Kommentare anzeigen
Vec = [0 -0 0 -0 0 0 0 0 1 0 0 0 -0 3 4 0 -0 0 0]
First step find non-zero value.
[Vecindex] = find(abs(Vec)>0)
Vecindex= 9 14 15
Q1. How to plus between indices?
- 1+0 (indices is 9 and 10)
- 3+4 (indices is 14 and 15)
4 Kommentare
Roger Stafford
am 16 Mai 2016
Please expand on your phrase “How to plus between indices”. I don’t know what you mean by that. Show a vector with a larger number of non-zero values and the result you expect, in order to demonstrate what you mean.
DongShin Yang
am 16 Mai 2016
Guillaume
am 16 Mai 2016
Note that
find(Vec) %no need for abs(Vec)>0
is sufficient to find the indices of non-zero values
Also note that matlab does not have a concept of negative zero.
Finally, what should happen with:
Vec = [0 1 0 0 3 4 6 0 0]
Are the 3 4 6 all summed together or just 3 and 4?
Roger Stafford
am 16 Mai 2016
@Guillaume: Actually, because most computers that run Matlab adhere to the 754 IEEE Standard for Binary Floating-Point Arithmetic, these do have the concept of a negative zero. You can tell the difference between the two kinds of zero by dividing 1 by them. A plus zero will give inf and a minus zero will produce -inf. Also fprintf will exhibit a minus sign on minus zero. Using format hex also reveals the difference.
Antworten (1)
Walter Roberson
am 16 Mai 2016
strfind(Vec, [1 0])
strfind(Vec, [3 4])
1 Kommentar
DongShin Yang
am 16 Mai 2016
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!