フィルターのクリア

IndexingProblem

1 回表示 (過去 30 日間)
Stephen Molnar
Stephen Molnar 2012 年 6 月 8 日
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.

回答 (1 件)

Walter Roberson
Walter Roberson 2012 年 6 月 8 日
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

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by