Programı çalıştırdığım zaman ekrana T tablosu gelmesini istiyorum. Tabloyu matris olarak düşünürsek iç içe kaç for açmam gerekiyor ? Yani matrisin 1.1 elemanı tinv komutuyla yazdırmam gerektiğinden bu işlemi n,m satır ve sütunlu matris için uygulamamın basit bir yolu var mı ?
Merhaba,
Anladığım kadarı ile tinv fonksiyonu sonucu dönen sonuç vektörününün sadece m,n elmanını almak istiyorsunuz. Bunun için şöyle bir şey yapabiliriz:
donenvektor = tinv(0.95,1:4)
donenvektor(1,2) %Donen vektorun 2. elemani
Elde etmem gereken tablo bu. m,n matrisi dersek buna bu tablo için 35,11 lik bir matris olcak. Ve 1,1den 35,11 e kadar tablodaki tüm değerleri yazdırmam gerekiyor. Bunun için sizin söylediğiniz yeterli olur mu ?
Tablonuz gözükmüyor ancak evet yukarıdaki kod ile istediğiniz satır*sütuna karşılık gelen elementi yazdırabilirsiniz.donenvektor(1,2) kodundaki 1 satır, 2 ise sütun belirtmektedir. Siz eğer 35'e 11lik matrisinizin her bir elementini tek tek ekrana bastırmak istiyorsanız bunu iki for döngüsü ile daha kolay yapabilirsiniz.
Aşağıdaki örneğe bakabilirsiniz:
for m=1:35
for n=1:11
donenvektor(m,n)
end
end
http://brahms.emu.edu.tr/etikan/index_htm_files/t-tablosu.pdf
ben mi yanlış anlattım bilmiyorum ama while komutuda kullanmam gerekecek mi ? tabloda satırdaki serbestlik derecesi bi yerden sonra sonsuza gidiyor. Yada ben mi anlamadım ? :/
Tam olarak ne yapmak istediğinizi daha açık yazar mısınız?
35'e 11'lik matrisiniz nedir? tinv fonksiyonunun dönütü değil mi?
Siz serbestlik derecenizi de mi değiştiriyorsunuz? Yani tinv(ols,sd) fonsksiyonundaki olasılık ve serbestlik derecesi değişkenlerini değiştirmek istiyor musunuz?
şöyle anlatayım. Serbestlik derecelerini satır vektörü olarak, p (olasılık değerlerini) değerlerini sütun vektörü olarak düşünebilir miyiz ? Yani bu tabloda serbestlik dereceleri 1,…..,50,60,….500 ve sonsuz şeklinde 47 adet serbestlik derecesi gözüküyor. P olasılık değerleride 10 adet. Tabloda gözüken bütün değerleri programı çalıştırdığım zaman (yani tablonun aynısını ) ekranda görmem gerekiyor. Şimdi biraz daha açıklayıcı oldu mu ?
O zaman sebestlik derecelerini satır vektörü (47 elementten oluşan) ve Olasılık değerlerini sütün vektörü olarak (10 element) yazdıktan sonra aşağıdaki gibi her bir tinv hesaplaması için karşılık gelen değeri çağırmamız gerekiyor.
serbestlikVektoru = []; %Satir vektoru olarak yazin
olasilikVektoru = []; %Sutun vektoru olarak yazin
for m=1:length(serbestlikVektoru) %Bu dongumuzu serbestlik vektorunun uzunlugu kadar dondurecegiz
for n=1:length(olasilikVektoru ) %Bu dongumuzu olasilik vektorunun uzunlugu kadar dondurecegiz
Cevap = tinv(serbestlikVektoru(m,1) ,olasilikVektoru(1,n))
end
end
hocam şimdi benim bu yazdığım kod t tablosu sonuçlarını ekrana getiriyor. Fakat ben bunları figure komutu ile bir tablo oluşturarak ekrana getirebilir miyim ? yazı görüntü çıktısı olsun herşey net gözüksün istiyorum. Örneğin tablonun üst kısmında olasılık değerleri,dik sütundada serbestlik dereceleri yazsın istiyorum ve herbir serbestlik derecesinin olasılık hesabı t değeri ilgili kutucukta yazsın istiyorum. bu yapılabilir mi ?
clear all;clc;
disp('T tablosunu görmek için lütfen 1e basınız');
f=input('');
if f==1;
sd=[1:1000]';
alf=[0.25 0.2 0.15 0.1 0.05 0.025 0.02 0.01 0.005 0.0025 0.001 0.0005];
for x=1:length(sd);
y=1:length(alf);
a=sd(x,1);
b=alf(1,y);
t=tinv(1-b,a)
end
for x=x+1;
y=alf(1,1);
end
elseif f~=1;
disp('1 harici bir tuşa bastınız. Lütfen size söylenileni yapınız.');
end
Matlab'da uitable fonksiyonu ile tablonuzu çizdirebilirsiniz, ama istediğiniz T-tablosu formatına uygun olur mu emin olamadım. Aşağıdaki linkteki tablolar isteğinizi karşılıyorsa, bu komut nasıl yazılır konusunda yardımcı olabiliriz.
https://www.mathworks.com/help/matlab/ref/uitable.html
% MATEMATIK MODEL TESTI alf = 0.95 ; % GUVEN ARALIGI T = f*(mo^2/so^2); q = chi2inv(alf,f); for i = 1:n1 T_UYSM(i,1) = [abs(V(i,1))/(mo*sqrt(Qvv(i,i)))]; end q_UYSM = tinv(alf,f); end
burada;
f: serbestlik derecesi
mo: önsel varyans
so: sonsanl varyans
V: düzeltme vektörü
Qvv: düzeltmelerin ortalama hatası
T,Q ve V testleri hepsi gösterilmiştir.