Error of the following code : "Array indices must be positive integers or logical values."

2 views (last 30 days)
% I have attached the file for : "ind" ; "len"; "miu".
% In the following code "line : freq(j)" I am having above mentioned error.
% Any kinds of help to solve the problem will be appreciated.
Nvar = 65536;
freq = zeros(Nvar,1);
for j = 1:Nvar
len = cell2mat(length_ijk(j));
ind = cell2mat(index_ijk(j));
freq(j) = exp(-sum(miu(ind).*len));
end

Answers (2)

Constantino Carlos Reyes-Aldasoro
Not very clear, what are length_ijk and index_ijk? in the files you have added, miu has 262144 values, ind has 77 and freq has 65536.

Cris LaPierre
Cris LaPierre on 4 Jan 2022
Not enough info to say for sure, but I suspect at some point, ind contains values that are not positive integers or logical values, causing miu(ind) to throw an error.
A = 1:3;
% works
A(2)
ans = 2
% your error
A(0)
Array indices must be positive integers or logical values.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!