how can i vectorize this for loop?

1 回表示 (過去 30 日間)
Anita pawar
Anita pawar 2017 年 7 月 21 日
コメント済み: Walter Roberson 2017 年 7 月 22 日
close all
clear all
clc
tic;
i=1;
for k=1:0.5:10;
for a=1:0.5:5;
numpl(i,:) =k;
denpl(i,:) =[1 a 0];
i=i+1;
end
end
w=[.1,.5,.8,1,2,8,15,50,100];
P=freqcp(numpl,denpl,w);
toc

採用された回答

alice
alice 2017 年 7 月 21 日
編集済み: alice 2017 年 7 月 21 日
You could do:
n1 = numel(1:0.5:10);
n2 = numel(1:0.5:5);
numpl2 = repelem(1:0.5:10,n2)';
denpl2 = repmat([ones(n2,1),(1:0.5:5)',zeros(n2,1)],n1,1);
ps: you can edit your code with the button '{} Code' when you write a question, in order to make it easier to read.
  3 件のコメント
Walter Roberson
Walter Roberson 2017 年 7 月 22 日
Walter Roberson
Walter Roberson 2017 年 7 月 22 日
Rewritten:
v1 = 1:0.5:10;
v2 = 1:0.5:5;
n1 = numel(v1);
n2 = numel(v2);
numpl2 = repmat(v1, 1, n2)';
denpl2 = repmat([ones(n2,1), v2.', zeros(n2,1)] ,n1, 1);

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by