Index exceeds matrix dimensions.
Show older comments
Dear all, I have this array, "" ONU_queueNP{N} = [] ""
ONU_queueNP{i} = [ONU_queueNP{i}; ArrivingTime PacketSize];
and in a line after, I have these instructions:
Instant = ONU_queueNP{i}(1,1);
Size = ONU_queueNP{i}(1,1);
So, in Instant' I get the error "Index exceeds matrix dimensions" knowing that this was used before and it does not give an error. What can be the problem please?
Thank you in advance.
5 Comments
Walter Roberson
on 24 Jun 2018
ArrivingTime and PacketSize might both have been empty when you assigned to ONU_queueNP{i}, so ONUP_queueNP{1} might not have an index (1,1)
Note: you probably want Size to be accessed as (1,2)
Aziza Zaouga
on 24 Jun 2018
Walter Roberson
on 24 Jun 2018
N = 5;
ONU_queueNP{N} = [];
This would create ONU_queueNP as a cell array of length 4, each containing a 0 x 0 double.
Now, let
global ArrivingTime PacketSize
i = 1;
ONU_queueNP{i} = [ONU_queueNP{i}; ArrivingTime PacketSize]
and observe:
ONU_queueNP =
1×5 cell array
{0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double}
You added an empty row to the end of an empty row, getting an empty row. And now ONU_queueNP{i} is empty so ONU_queueNP{i}(1,1) is index out of range.
Aziza Zaouga
on 25 Jun 2018
Walter Roberson
on 25 Jun 2018
You could first check size(ONU_queueNP) . If you get index exceeding matrix dimension on that, then check whether you accidentally created a variable named "size"
Answers (0)
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!