Manipulating Data in cell array, especially Inf

2 views (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

Categories

Find more on Numeric Types 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!