アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下の様なプログラムを、一つ一つ入力しなくても、for文などを使って
簡単に出力するやり方知ってる人居ましたら教えてください。
____________________________________________________________________
test= xlsread('test.xlsx');→あるエクセルファイルを読みだしている
num=test(1:231,;);→ある行数を抽出している

a1=num(2,:)./num(3,:);         
a2=num(3,:)./num(4,:);          
a3=num(4,:)./num(5,:);         
:
a230=num(231,:)./num(232,:); →a1~a230を求めている

C = [a1;a2;a3...a229;a230] →上の行列をすべて結合させている
_____________________________________________________________________
よろしくお願いします。

A 回答 (1件)

num=test(1:231,;);


なのに
a230=num(231,:)./num(232,:);
と232を使っているのが変ですが、a1,a2 , ...のnum(x,:)が test(x,:)の意味だとしたら
num1=test(2:231,;);
num2=test(3:232,;);
C=num1 ./ num2
でできるような。

forで回すなら、最初に
C=[]
と初期化して、1行計算したら
C=[C;a]
と追加する、ということもできます。
ただ、「行列で計算できるものは、forを使うな」がMATLABでの常識だと聞いてます。
(最適化が進んでいる行列計算に比べて、forはすごく遅いそうです)
    • good
    • 0
この回答へのお礼

お礼が遅くなりました。
forを使わないやり方が知れてよかったです。
ありがとうございました。

お礼日時:2014/10/09 19:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!