Manipulating Data in cell array, especially Inf

1 Ansicht (letzte 30 Tage)
Oliver-Maximilian Klein
Oliver-Maximilian Klein am 19 Mär. 2022
Bearbeitet: Stephen23 am 19 Mär. 2022
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 Kommentare
Oliver-Maximilian Klein
Oliver-Maximilian Klein am 19 Mär. 2022
Haha! I shouldve checked my spelling, its because inf is supposed to bei Inf. Yikes ! NVM guys. :)
Stephen23
Stephen23 am 19 Mär. 2022
Bearbeitet: Stephen23 am 19 Mär. 2022
isequal(inf,Inf)
ans = logical
1
PS: use ISINF rather than EQ.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Burhan Burak AKMAN
Burhan Burak AKMAN am 19 Mär. 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

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by