Subscript indices must either be real positive integers or logicals
Info
This question is closed. Reopen it to edit or answer.
Show older comments
getting this error when trying to build a set of data from a data store with the following code. I would like for every iteration of the for loop (one read from the data store), to add data to the table.
if true
clear
clc
ds = fileDatastore(fullfile('***example****);
tf = hasdata(ds);
i = 0
while (tf == 1);
accData(i,:) = read(ds); %read from datastore
tf = hasdata(ds);
i = i+1
end
thanks in advance
Answers (3)
Image Analyst
on 23 Oct 2017
0 votes
See the FAQ for a full explanation: http://matlab.wikia.com/wiki/FAQ#How_do_I_fix_the_error_.22Subscript_indices_must_either_be_real_positive_integers_or_logicals..22.3F
Walter Roberson
on 23 Oct 2017
0 votes
You initialize i = 0, and then assign to accData(i,:) which tries to use that 0 as the index. You should do the i = i + 1 before using i as the index.
Jeremy Hughes
on 25 Oct 2017
Very common error. =) MATLAB arrays start at index = 1. You should see the same error from x(0,:) = 1.
In this case, I don't think you need the loop at all. Use the readall function:
accData = readall(ds)
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!