How to adjust the "isnan" to make it work for cell?

3 Ansichten (letzte 30 Tage)
Ismail Qeshta
Ismail Qeshta am 20 Feb. 2018
Kommentiert: Ismail Qeshta am 21 Feb. 2018
Hi I have the below for loop. I would like to replace the NaN data output with 0.07. I keep getting the below error message. Could anyone please advise me how to stop the error message? Thank you.
for i=1:size(A,2)%number of columns
x{i} = interp1(y3, x3, A(:,i), 'linear');
k=1:1;
temp=x(k,:);
temp(isnan(temp))=0.07;
x(k,:)=temp;
fid=fopen(['result_' num2str(1) '.txt'],'w');
fprintf(fid,'%f\n',x);
fclose(fid);
end
The error message:
Undefined function 'isnan' for input arguments of type 'cell'.
Error in InterpolaeMFJavadCompleted (line 24)
temp(isnan(temp))=0.07;

Akzeptierte Antwort

Stephen23
Stephen23 am 20 Feb. 2018
Bearbeitet: Stephen23 am 20 Feb. 2018
Don't waste your time with cell arrays and cell2mat and the like, you don't need them. Just use a numeric variable:
N = size(A,2) %number of columns
%C = cell(1,N);
for k = 1:N
tmp = interp1(y3, x3, A(:,k), 'linear');
tmp(isnan(tmp))=0.07;
%C{k} = tmp;
fnm = sprintf('result_%d.txt',k);
[fid,msg] = fopen(fnm,'wt');
assert(fid>=3,msg)
fprintf(fid,'%f\n',tmp);
fclose(fid);
end
I also made some other small changes to make your code more robust.
  25 Kommentare
Jan
Jan am 21 Feb. 2018
@Ismail: If the answer solves your problem, please accept it.
Ismail Qeshta
Ismail Qeshta am 21 Feb. 2018
Done :-) Thanks Jan.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

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