IndexingProblem

2 visualizaciones (últimos 30 días)
Stephen Molnar
Stephen Molnar el 8 de Jun. de 2012
I have a macro that has an indexing problem.
CartridgeID
i = 1,length(allData);
Cart_ID(i) = allData(i).CartridgeID;
end
allData is a struct which contains allData(1,1).CartridgeID which is a 24 digit integer
An attempt to execute the above results in:
i =
1
Subscripted assignment dimension mismatch.
>>
Obviously an indexing problem, but I can't seem to find a solution.

Respuestas (1)

Walter Roberson
Walter Roberson el 8 de Jun. de 2012
Without a loop:
Card_ID = [allData.CartridgeID]
With a loop, you will need a "for" statement such as
for i = 1 : length(allData)
Notice the colon instead of comma, and notice the "for". The code you had assigns 1 to i, displays the result, calculates length(allData) and throws away the result of that calculation.
How did you manage to get a 24 digit integer? The maximum integer for uint64 is only 20 digits. Perhaps the value is not really a 24 digit integer, but is instead (e.g.) a string? If it is then you need to store it to multiple output locations:
for i = 1 : length(allData)
Cart_ID(i,:) = allData(i).CartridgeID;
end

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by