Manipulating Data in cell array, especially Inf

1 view (last 30 days)
Hey there,
i have a 25x25 cell arrays which includes mostly numbers or doubles to be precise. Now some values are Infinity, displayed by the Inf keyword. Now i want to copy the cell array in to an 2d array and exchange the Inf's with ones. But i cant seem to figure it out. Maybe you guys know more ? With L_d_0 being the 2d cell array containing the data i want to copy / exchange with ones if they are Inf.
L_d_Matrix=zeros(25,25);
for i=1:length(L_d_0)
for j=1:length(L_d_0)
L_d_Matrix(i,j)=L_d_0{i,j};
if L_d_Matrix(i,j) == inf
L_d_Matrix(i,j) = 1;
end
end
end
  2 Comments
Oliver-Maximilian Klein
Oliver-Maximilian Klein on 19 Mar 2022
Haha! I shouldve checked my spelling, its because inf is supposed to bei Inf. Yikes ! NVM guys. :)
Stephen23
Stephen23 on 19 Mar 2022
Edited: Stephen23 on 19 Mar 2022
isequal(inf,Inf)
ans = logical
1
PS: use ISINF rather than EQ.

Sign in to comment.

Answers (1)

Burhan Burak AKMAN
Burhan Burak AKMAN on 19 Mar 2022
I think that you can try this method on the other hand, that method shorter than if else method.
%Example Matrix
L_d_Matrix=[inf,5,2;inf,inf,inf;1,2,3]
L_d_Matrix = 3×3
Inf 5 2 Inf Inf Inf 1 2 3
%Here we change inf by one
L_d_Matrix(L_d_Matrix==inf)=1
L_d_Matrix = 3×3
1 5 2 1 1 1 1 2 3

Community Treasure Hunt

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

Start Hunting!