# how to speed my code up

2 ビュー (過去 30 日間)
cglr 2019 年 11 月 16 日
コメント済み: Daniel M 2019 年 11 月 17 日
Hello everone,
Here, line 4 and 5 is called 5525575680 times and they last 280 and 230 seconds in order. May I speed it up, how can I use it more efficient ?
1 function [utilization] = totalUtilization(myArray, periodNumber, count, LPP)
2 duration = 0;
3 for i = 1:count
4 duration = duration + myArray(periodNumber, i);
5 end
6 utilization = duration / LPP;
7 end
##### 1 件のコメント-1 件の古いコメントを表示-1 件の古いコメントを非表示
cglr 2019 年 11 月 16 日
Because, I still can't get used to ability of MATLAB :) .
You are exactly true and no need to loop for sum or etc. I wrote the function taking into account to your comment:
utilization = sum(myArray(periodNumber,:)) / LPP;
Thank you so much.

サインインしてコメントする。

### 採用された回答

Daniel M 2019 年 11 月 16 日

Why do you need a loop to compute a sum? Just replace the entire function with
utilization = sum(myArray(periodNumber, 1:count)) / LPP;
And if count is equal to the number of columns of myArray, replace "1:count" with just ":" to avoid making an extra temporary index.
If periodNumber happens to be a vector, then include the number 2 as the dimension input into sum.
##### 4 件のコメント2 件の古いコメントを表示2 件の古いコメントを非表示
cglr 2019 年 11 月 17 日
actually table is a regular array with the size (period,telCount). And I can ask the question in a better way as seen below:
x = zeros(period,1);
for i=1:period
x(i,1) = sum(table(i,1:telCount));
end
Here what I want is, sum all column for each row and write result to x array.
Daniel M 2019 年 11 月 17 日
You really enjoy writing loops! But you don't need to. Look up the documentation for the sum function. It shows you how to do just that.

サインインしてコメントする。

### カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by