MATLAB Answers

why do I get this error?

3 views (last 30 days)
Hey Thats the code I put and the error:
time1 = AIS1(:,end-4:end)
Index in position 2 is invalid. Array indices must be positive integers or logical values.
Could anybody tell me why?

Accepted Answer

Image Analyst
Image Analyst on 16 Sep 2021
AIS1 has 4 or fewer columns.
s = size(AIS1)
  4 Comments
Image Analyst
Image Analyst on 16 Sep 2021
If AIS1 is a simple string or character array, you'd do AIS1(end-4:end). If it's an array of strings, say 100 of them, and you wanted only the last 4 characters off each of them in a new 100 element long string where each string is only 4 characters one way is to do this:
% Make an array of strings.
AIS1 = ["1234567", "123456789"]
for k = 1 : numel(AIS1)
% Get this string as a character array.
thisString = char(AIS1(k));
% Get the last 4 characters of this string
% and put into the k'th cell of a cell array.
last4{k} = thisString(end-4:end);
end
% last4 is a cell array where each cell is a character array.
% Convert to a string array if desired:
last4 = string(last4)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!