0

やあみんな。この質問があります。C プログラミングでは、複数の値を配列に格納する場合、次のようなループを使用して実装します。

j=0; //initialize  
for (idx=1,idx less than a constant; idex++)  
{  
    slope[j]=(y2-y1)/(x2-x1);  
    j++;  
}  

私の質問は Matlab で、j を手動で増加させずに同じ配列「勾配」を取得する簡単な方法はありますか? 何かのようなもの:

for idx=1:constant  
    slope[]=(y2-y1)/(x2-x1);

ありがとうございました!

4

1 に答える 1

2

このような操作は通常、ループせずに実行できます。

たとえば、勾配がすべてのエントリで同じである場合、次のように記述できます。

slope = ones(numRows,numCols) * (y2-y1)/(x2-x1);

ここでnumRows、 とnumColsは配列のサイズですslope

y 値と x 値のリストがあり、すべての点で勾配が必要な場合は、次のように呼び出すことができます。

slope = (y(2:end)-y(1:end-1))./(x(2:end)-x(1:end-1)

すべてを一度に取得します。y(2:end)は 2 番目から最後までのすべての要素であり、1 番目から 2 番目から最後までのすべての要素であることに注意してくださいy(1:end-1)。したがって、勾配の最初の要素は、 の 2 番目と最初の要素の差から計算されyます。./また、 の代わりに注意してください/。ドットは要素単位の操作になります。つまり、分子の配列の最初の要素を分母の配列の最初の要素で割ります。

于 2011-01-15T04:33:32.857 に答える