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 日

0 投票

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 件のコメント

Anastasiia Hanchevska
Anastasiia Hanchevska 2023 年 3 月 14 日
If i will write everything like you said Matlab saying that function is unrecognized
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 件)

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by