Use one function in another

3 ビュー (過去 30 日間)
Anastasiia Hanchevska
Anastasiia Hanchevska 2023 年 3 月 14 日
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 件のコメント
imran saeed
imran saeed 2023 年 3 月 14 日
call second function from inside of first one.

サインインしてコメントする。

採用された回答

Torsten
Torsten 2023 年 3 月 14 日
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 件のコメント
Dyuman Joshi
Dyuman Joshi 2023 年 3 月 14 日
編集済み: Dyuman Joshi 2023 年 3 月 14 日
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 2023 年 3 月 14 日
Yeah, i found the problem. Torsten helped so much. Thank all you guys

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by