multiplication table in matlab

128 views (last 30 days)
mohamed
mohamed on 1 Mar 2013
Answered: Akmal on 19 Jun 2022
I want to make the multiplication table using matlab ?
  2 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 1 Mar 2013
What does that mean?
leela krishna
leela krishna on 30 Jun 2019
the output is the multiplication table of any number
clc;
clear all;
n=input('Enter an integer:');
i=1;
while(i<=10)
fprintf('%d*%d=%d \n',n,i,n*i);
i=i+1;
end

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 1 Mar 2013
Edited: Azzi Abdelmalek on 1 Mar 2013
x=(1:9)'
a=repmat(x,1,9)
b=a'
c=bsxfun(@times,x,x')
out=arrayfun(@(x,y,z) [num2str(x) 'x' num2str(y) '=' num2str(z)],a,b,c,'un',0)
  3 Comments
mohamed
mohamed on 10 Mar 2013
Edited: mohamed on 10 Mar 2013
i can't understand how arrayfun operates ?
Azzi Abdelmalek
Azzi Abdelmalek on 10 Mar 2013
Edited: Azzi Abdelmalek on 10 Mar 2013
Look at this example:
a=[2 4 8]
%I want to do some operation to each number of a
out(1)=a(1)*100+cos(a(1))
out(2)=a(2)*100+cos(a(2))
out(3)=a(3)*100+cos(a(3))
%This can be done with arrayfun
out=arrayfun(@(x) x*100+cos(x),a)

Sign in to comment.

More Answers (4)

John Doe
John Doe on 22 May 2013
Another one-liner:
cumsum(meshgrid(1:10))

Teja Muppirala
Teja Muppirala on 23 May 2013
N = 10
(1:N)'*(1:N)
  2 Comments
Morganne Durham
Morganne Durham on 22 Jan 2018
To make a matrix for a times table, you need to use a period before the *
(1:N)'.*(1:N)
Matt J
Matt J on 22 Jan 2018
Edited: Matt J on 22 Jan 2018
No, you don't need .*
Also, the latter will only work in R2016b and higher. This thread was from back in 2013.

Sign in to comment.


Matt J
Matt J on 1 Mar 2013
As an example, This will generate a times table for integers 1...10
bsxfun(@times, (1:10).',1:10)

Akmal
Akmal on 19 Jun 2022
...

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!