how can i vectorize this for loop?

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

 Respuesta aceptada

alice
alice el 21 de Jul. de 2017
Editada: alice el 21 de Jul. de 2017
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 comentarios

Anita pawar
Anita pawar el 22 de Jul. de 2017
this solution is not execute in the matlab.I got this error "Undefined function 'repelem' for input arguments of type 'double'.
Error in Untitled11 (line 5) numpl2 = repelem(1:0.5:10,n2)';" while executing this solution
Walter Roberson
Walter Roberson el 22 de Jul. de 2017
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);

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 21 de Jul. de 2017

Comentada:

el 22 de Jul. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by