Soru sor"Input data must be a numeric, cell, or logical array." Hatası Hakkında Yardım
Aykut tarafından 3 yıl önce soruldu

Merhaba, aşağıdaki kod "Input data must be a numeric, cell, or logical array." hatası veriyor. Bu hatayı nasıl düzeltebilirim? Excel'e yazmıyor. Virgülden sonra 2-3 basamak yeterli.
 
clear all
clc

T=55;
P=2264;
syms X
A=10.44-1.767*X+0.9823*X^2+0.3627*X^3;
B=2013.8-2155*X+1540.9*X^2-197.7*X^3;
%log10(P*1000)=(A*(T5+273.16)-B)/(T+273.16)
denklem=A-B/(T+273.16)==log10(P*1000);
cevap=solve(denklem,X);
k=vpa(cevap)
X=0;
for i=1:3
if imag(k(i,1))==0
X=k(i,1);
end
end
xlswrite('veriler.xls',X,'X')
 

Sonuç:

k =
0.99897578648061690261060663503483
1.4241898953498400728818656399287 – 0.3153671198417719426083445803892i
1.4241898953498400728818656399287 + 0.3153671198417719426083445803892i
Error using xlswrite (line 170)
Input data must be a numeric, cell, or logical array.
Error in kok_hesaplama (line 24)
xlswrite('veriler.xls',X,'X')

6 Cevap
ekremt Yönetici tarafından 3 yıl önce cevaplandı

Merhaba,

Öncelikle matlab xlswrite komutunu artık önermiyormuş. Bununla ilgili kendi sayfasını ekkledim diğer komutlar orada mevcut.
Ardından sizinle benzer hatayı alan ve bununla ilgili olan yanıtları ekledim. Umarım faydası olabilir.
Olmaz ise tekrar inceleyelim. İyi çalışmalar

Input Data … Hatası

Excel'e Ekleme

Matlab xlswrite referans Sayfası

Aykut tarafından 3 yıl önce cevaplandı

Teşekkürler, diğer komutları inceledim. writematrix komutunu denedim fakat bu komutta hata verdi. X sayısında bir sorun var sanırım. bu sayıyı excele yazdırmıyor. düzelttiğim kod ve sonuç aşağıdaki gibi.
 
clear all
clc

T=55;
P=2264;
syms X
A=10.44-1.767*X+0.9823*X^2+0.3627*X^3;
B=2013.8-2155*X+1540.9*X^2-197.7*X^3;
%log10(P*1000)=(A*(T5+273.16)-B)/(T+273.16)
denklem=A-B/(T+273.16)==log10(P*1000);
cevap=solve(denklem,X);
k=vpa(cevap,3)
X=0;
for i=1:3
if imag(k(i,1))==0
X=k(i,1);
end
end
veriler(:,:)=[X]
writematrix(veriler,'veriler.xls')
 
Sonuç:

k =

0.999
1.42 + 0.315i
1.42 – 0.315i

veriler =

0.9989757483789193923047781617508

Error using writematrix (line 108)
Unsupported type 'sym'. Convert the data to numeric, logical, string, datetime, duration or categorical before writing.
Error in kok_hesaplama (line 26)
writematrix(veriler,'veriler.xls')
 

Aykut tarafından 3 yıl önce cevaplandı

Belki kök bulma yöntemini değiştirmek gerekir fakat nasıl sonuç alacağımı bulamıyorum. Vaktim az kaldı ve buradan sonrasına ilerleyemiyorum.

Aykut tarafından 3 yıl önce cevaplandı

Double komutu ile çözdüm. xlswrite komutu da çalıştı bu şekilde.
clear all
clc

T=55;
P=2264;
syms X
A=10.44-1.767*X+0.9823*X^2+0.3627*X^3;
B=2013.8-2155*X+1540.9*X^2-197.7*X^3;
%log10(P*1000)=(A*(T5+273.16)-B)/(T+273.16)
denklem=A-B/(T+273.16)==log10(P*1000);
cevap=solve(denklem,X);
k=vpa(cevap,3)
X=0;
for i=1:3
if imag(k(i,1))==0
X=k(i,1);
end
end
%X=str2double('X')
%X=int2str([X])
%X=str2num(X)
veriler(:,:)=[X]
veriler=double([X])
writematrix(veriler,'veriler.xlsx')

ekremt Yönetici tarafından 3 yıl önce cevaplandı

Merhaba,

Çözdüğünüz için tebrik eder ve daha sonra benzer konuda yardıma ihtiyaç duyacaklar adına sonuçları ve kodları paylaştığınız için teşekkür ederim. İyi çalışmalar

Aykut tarafından 3 yıl önce cevaplandı

Rica ederim, inşallah yararı olur. iyi çalışmalar.