How solve this problem in Matlab

5 visualizzazioni (ultimi 30 giorni)
How can I write a program in a script file that creates and 𝑛 × 𝑚 matrix with elements that have the following values. The value of each element in the first row is the number of the column. The value of each element in the first column is the number of the row, The rest of the elements each has a value equal to the sum of the element above it and the element to the left.
  1 Commento
Yeachan Choi
Yeachan Choi il 24 Mar 2022
Modificato: Yeachan Choi il 24 Mar 2022
First, I solved it with this code
n = input('Choose your number n : ')
m = input('Choose your number m : '); % n, m should be a positive integer
V = zeros(n, m);
V(1,:) = 1:m; V(:,1) = 1:n;
for a = 2:n;
for b = 2:m;
V(a,b) = V(a-1,b) + V(a,b-1)
end
end
but This code made me nervous, because there are many result of matrix in command file.

Accedi per commentare.

Risposta accettata

Davide Masiello
Davide Masiello il 24 Mar 2022
Modificato: Davide Masiello il 24 Mar 2022
Note that your code displays a lot of matrixes because you haven't placed a semicolon when defining V. You can fix it easily
clear,clc
n = 5;
m = 6;
V = zeros(n,m);
V(1,:) = 1:m; V(:,1) = 1:n;
for a = 2:n;
for b = 2:m;
V(a,b) = V(a-1,b) + V(a,b-1);
end
end
V
V = 5×6
1 2 3 4 5 6 2 4 7 11 16 22 3 7 14 25 41 63 4 11 25 50 91 154 5 16 41 91 182 336
For the rest, I believe your code works correctly.

Più risposte (1)

David Goodmanson
David Goodmanson il 25 Mar 2022
Hi Davide,
here is a method that uses one for loop instead of two:
n = 5
m = 6
V = zeros(n,m);
V(:,1) = 1:n;
for k = 2:m
V(:,k) = cumsum(V(:,k-1)) +1;
end
V
V =
1 2 3 4 5 6
2 4 7 11 16 22
3 7 14 25 41 63
4 11 25 50 91 154
5 16 41 91 182 336

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by