how to vectrorized this code?

close all
clear all
clc
tic;
i=1;
for k=1:1:10;
for a=1:1:10;
nump(i,:) =k*a;
denp(i,:) =[1 a 0];
i=i+1;
end
end

 Accepted Answer

Jan
Jan on 9 Oct 2017
Edited: Jan on 9 Oct 2017
nump = (1:10) .* (1:10).'; % Auto-Expand >= Matlab R2016b
For older Matlab versions:
nump = bsxfun(@times, (1:10), (1:10).');
denp from KL's solution is perfect already. This is 2 microseconds(!) faster on my computer, but less nice:
denp = zeros(100, 3);
denp(:, 1) = 1;
denp(:, 2) = repmat((1:10)', 10, 1);

More Answers (1)

nump = cell2mat(arrayfun(@(x) x:x:x*10,1:10,'uni',0))';
denp = [ones(100,1) repmat((1:10)',10,1), zeros(100,1)];

1 Comment

+1 for the optimal creation of denp.

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Asked:

on 9 Oct 2017

Edited:

Jan
on 9 Oct 2017

Community Treasure Hunt

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

Start Hunting!