Is there a way to start indexing with 0 in MATLAB?

33 visualizzazioni (ultimi 30 giorni)
a=[4 2 5 2]
can I make this happen?
a(0)=4

Risposta accettata

madhan ravi
madhan ravi il 2 Gen 2019
Nope not at all index of matlab starts from 1 always!
  10 Commenti
Bruno Luong
Bruno Luong il 3 Lug 2023
You confuse between uint8 arithmetics (that can never return anything beyond (0:255))
and indexing range.
Rohit
Rohit il 5 Lug 2023
@Stephen23 @Bruno Luong Thank you for your inputs. I was under the assumption that typecasting the index would change the the data type of the output which is not the case.

Accedi per commentare.

Più risposte (2)

Bruno Luong
Bruno Luong il 2 Gen 2019
Modificato: Bruno Luong il 2 Gen 2019
Yes, but you won't get much support by built-in array stock function
>> M = containers.Map('KeyType','uint32','ValueType','double')
M =
Map with properties:
Count: 0
KeyType: uint32
ValueType: double
>> M(0)=3
M =
Map with properties:
Count: 1
KeyType: uint32
ValueType: double
>> M(0)
ans =
3
>>
  6 Commenti
Utku Yilmaz
Utku Yilmaz il 19 Apr 2020
Modificato: Utku Yilmaz il 19 Apr 2020
ZeroBased function (link given above) is very useful. 1 based indexing creates problem when I share my code with software developers using C language. The indexes get messy and it becomes very hard to compare codes.
I always used index values starting from 0, as following. But I think, I will utilize ZeroBased function from now on.
for index_A = 0 : 10
for index_B = 0 : 10
value = a_matrix(index_A+1, index_B+1);
end
end

Accedi per commentare.


Bruno Luong
Bruno Luong il 3 Lug 2023
One way is to define your onw class with overloading subsref and subsasg

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by