0

for ループを使用して、9D=[cos(pi/18) -sin(pi/18); sin(pi/18) cos(pi/18)]倍する必要があります。X= [0.80;0]結果を次の形式のテーブルに保存します。X=zeros(2,10)

私は少し迷っています。

アンダース。

4

2 に答える 2

0

あなたの質問はあまり明確ではありません。ループD*X( 2x1マトリックス)を9回実行しても、 2x10マトリックスは得られません。

これはあなたが探しているものですか?

D = [cos(pi/18) -sin(pi/18); sin(pi/18) cos(pi/18)];
X = [0.80;0];
O = ones(1,9);
A = D*X*O

出力:

A =

 Columns 1 through 8:

   0.78785   0.78785   0.78785   0.78785   0.78785   0.78785   0.78785   0.78785
   0.13892   0.13892   0.13892   0.13892   0.13892   0.13892   0.13892   0.13892

 Column 9:

   0.78785
   0.13892

: ほとんどの場合、Matlab では行列操作にループは必要ありません。

于 2013-10-26T13:10:20.730 に答える
0

@jkshahの回答の結果があなたが望むものである場合は、彼の回答を使用してください(おそらくO行列を に変更してくださいO = ones(1,10))。MatLab がこのように名付けられた理由は、それ (または彼女 :p ) が行列演算に優れており、できればループを避けたほうがよいからです。ループを使用したい場合は、次の方法があります。

D = [cos(pi/18) -sin(pi/18); sin(pi/18) cos(pi/18)]; % Input
X = [0.80;0];                                        % Input
A = D*X;                                             % The function
X = zeros(2,10);                                     % Initialize the result table

X(:,1)=A;                                            % Insert the result in 
                                                     % the first column

for i =1:9                                           % Iterate to fill the 2X10 table
    X(:,i+1) = A;
end 
于 2013-10-26T14:05:41.213 に答える