Picproje Elektronik Sitesi

SERBEST BÖLGE => Bilim Teknik => Matlab => Konuyu başlatan: vitruvius - 15 Nisan 2012, 15:31:56

Başlık: Matlab'te Matris İşlemi
Gönderen: vitruvius - 15 Nisan 2012, 15:31:56
Merhaba aşağıdaki resimde verdiğim matrislerle yapılan işlemi matlab'te nasıl yapabilirim acaba? K matrisinde bilinmeyen olduğu için tanımlayamadım.

Teşekkür ederim.

(http://img402.imageshack.us/img402/718/matris.png)
Başlık: Ynt: Matlab'te Matris İşlemi
Gönderen: ferdem - 15 Nisan 2012, 19:58:46

k1 = sym('k1');
k2 = sym('k2');
k3 = sym('k3');
kvektor=[k1 k2 k3];

Şeklinde harfli ifadelerden oluşan vektör oluşturabilirsiniz. Bu vektörü sayılardan oluşan matrisle çarpabilirsiniz:
a=[1 2 3; 4 5 6; 7 8 9];
kvektor=[k1 k2 k3].';
a*kvektor

ans =

   k1 + 2*k2 + 3*k3
4*k1 + 5*k2 + 6*k3
7*k1 + 8*k2 + 9*k3
Başlık: Ynt: Matlab'te Matris İşlemi
Gönderen: OptimusPrime - 15 Nisan 2012, 21:40:08
ferdem
bir matrisi vektöre ve vektörüde matrise dönüştürmenin kısa bir yolu var mı???
Başlık: Ynt: Matlab'te Matris İşlemi
Gönderen: lordsandman - 15 Nisan 2012, 21:54:37
Alıntı yapılan: OptimusPrime - 15 Nisan 2012, 21:40:08
ferdem
bir matrisi vektöre ve vektörüde matrise dönüştürmenin kısa bir yolu var mı???

Örneğin "A" 10 elemanlı bir matris ise reshape(A',10,1) bunu vektöre dönüştürür

"B" vektörünüz ise; C = vec2mat(B,kolon) matrise dönüştürür, fakat her seferinde 1 satır olmak üzere. vec2mat fonksiyonunun yardımına bakabilirsiniz
Başlık: Ynt: Matlab'te Matris İşlemi
Gönderen: vitruvius - 15 Nisan 2012, 22:11:03
Hocam sI kısmında hata alıyorum.

I=eye(3)
I =
     1     0     0
     0     1     0
     0     0     1
>> (s*I)-A-(B*K)


Hata şu şekilde:

Error using InputOutputModel/plus (line 64)
Invalid operand. Variables of type "sym" cannot be combined with other models.

Error in InputOutputModel/minus (line 451)
         M = M1 + (-M2);


s'i matrisin  içine nasıl sokabilirim? Çünkü birim matrisin köşegenine elimle s koymaya çalıştığımda da garip bir formatta oluyor ve yine kullanamıyorum.
Transfer function from input 1 to output...
#1:  s

#2:  0

#3:  0

Transfer function from input 2 to output...
#1:  0

#2:  s

#3:  0

Transfer function from input 3 to output...
#1:  0

#2:  0

#3:  s
Başlık: Ynt: Matlab'te Matris İşlemi
Gönderen: ferdem - 16 Nisan 2012, 08:21:32
Bilemiyorum vitruvius :)
OptimusPrime vektör matris dönüşümü için arkadaşın da yazdığı gibi reshape i kullanıyorum. Mesela 3 e 3 matrisi 1 e 9 satır vektörü yapmak için reshape(a,1,9) kullanıyorum, reshape(a,3,3) 1 e 9 vektörü 3 e 3 matris yapmak için de kullanılabilir. reshape önce sütunları alıp ipe diziyor sonra yeniden sıralıyor. Transpose ile düzenleme yapılabilir. Bir de matlab de sevdiğim fonksiyon repmat var. repmat ile bir vektörü alt alta veya yan yana koyarak boyutu arttırabiliyoruz.
Mesela a=[1 2 3] satır vektörünü repmat(a,3,2) ile
1 2 3 1 2 3
1 2 3 1 2 3
1 2 3 1 2 3
şeklinde bir matrise dönüştürmek mümkün. Kolay gelsin.
Başlık: Ynt: Matlab'te Matris İşlemi
Gönderen: vitruvius - 17 Nisan 2012, 23:06:58
s'i tf olarak değil de sym('s') olarak tanımlayınca işlem yaptı, determinantını bile aldı =)

Konu çözüldü butonu kalktı mı?