Use one function in another

4 Ansichten (letzte 30 Tage)
Anastasiia Hanchevska
Anastasiia Hanchevska am 14 Mär. 2023
I have two functions, how can i use one in another ? I need to use my matrix A from first function in second one
function A = createMatrix(n, a)
n = 7
a = [3 4 1 2 5 2 1]
A = zeros(n);
for i = 1:n
for j = 1:n
A(i,j) = a(mod(j-i,n)+1);
end
end
end
There second
function period = findPeriod(A)
n = size(A, 1);
[~, idx] = max(A, [], 2);
idx = idx - 1;
g = n;
for k = 1:length(idx)-1
i = idx(k);
j = idx(k+1);
d = abs(i-j);
g = gcd(g, d / gcd(g, d));
end
period = g;
end
  1 Kommentar
imran saeed
imran saeed am 14 Mär. 2023
call second function from inside of first one.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Torsten
Torsten am 14 Mär. 2023
n = 7;
a = [3 4 1 2 5 2 1];
A = createMatrix(n, a)
A = 7×7
3 4 1 2 5 2 1 1 3 4 1 2 5 2 2 1 3 4 1 2 5 5 2 1 3 4 1 2 2 5 2 1 3 4 1 1 2 5 2 1 3 4 4 1 2 5 2 1 3
period = findPeriod(A)
period = 1
function A = createMatrix(n, a)
A = zeros(n);
for i = 1:n
for j = 1:n
A(i,j) = a(mod(j-i,n)+1);
end
end
end
function period = findPeriod(A)
n = size(A, 1);
[~, idx] = max(A, [], 2);
idx = idx - 1;
g = n;
for k = 1:length(idx)-1
i = idx(k);
j = idx(k+1);
d = abs(i-j);
g = gcd(g, d / gcd(g, d));
end
period = g;
end
  3 Kommentare
Dyuman Joshi
Dyuman Joshi am 14 Mär. 2023
Bearbeitet: Dyuman Joshi am 14 Mär. 2023
Are you sure you did exactly the same as what Torsten did in their answer?
What is the full error message? Copy-paste all of the red text.
Anastasiia Hanchevska
Anastasiia Hanchevska am 14 Mär. 2023
Yeah, i found the problem. Torsten helped so much. Thank all you guys

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by