2016-06-25 28 views
0

Ich mag y einen Multi-Plot von jeder Anordnung von Matrix erstellen:Plot aus einer Matrix in Matlab

q = [...] % (a 1x6 matrix) 
p = [...] % (a 6x6 matrix) 
x = [0:1:40]; 
y = q * p^x; 

Aber ich bekomme diese Fehlermeldung:

Error using^
Inputs must be a scalar and a square matrix. 
To compute elementwise POWER, use POWER (.^) instead. 
+0

[http://fr.mathworks.com/help/matlab/learn_matlab/matrizen-und-arrays.html](http://fr.mathworks.com/help/matlab/learn_matlab/matrices-and- arrays.html) – shamalaia

Antwort

0
q = [...] (a 1x6 matrix) 
p = [...] (a 6x6 matrix) 
x = [0:1:40]; 
y = [] ; 
for i = 1 : length (x) 
    y(i,:,:) = q * p .^ x(i); 
end 

q * p generiert die Matrix der Größe 6 x 6. y wird 3-dimensionale Matrix der Größe 41 x 6 x 6 sein.

0

versuchen, diese Linie zu beheben, wie

for k=1:40 
y = q * p^k; 
end 

auch können Sie dies als

for k=1:40 
y = q * p^x(k); 
end 

auch wird es Potenz von p takess als x dann mehrere q * p^x;

1

Um zu vermeiden, Blas- ups in power computation, berechne die Kräfte nicht explizit, sondern verwende Zwischenergebnisse

y = zeros(41,6); 
y(1,:) = q; 
for ind = 1:40 
    y(ind+1,:) = y(ind,:)*p; 
end