Creating a function in MATLAB
4 次查看(过去 30 天)
显示 更早的评论
I need to create a function with input i and outputs j and k. So i varies from 1,2,3... and i,j and k are related as
, where j =0,1,2,... and k=0,1,2,...,
. So,


for input i=1, outputs should be j=0,k=0;
i=2 ⇒ j=1,k=0;
i=3 ⇒ j=1,k=1;
i=4 ⇒ j=2,k=0;
i=5 ⇒ j=2,k=1;
i=6 ⇒ j=2,k=2;
i=7 ⇒ j=2,k=3;
and so on. How do I create such a function?
0 个评论
采纳的回答
Walter Roberson
2022-2-11
for I = 1 : 10
[J, K] = decode(I);
fprintf('i = %d, j = %d, k = %d\n', I, J, K);
end
function [j, k] = decode(i)
L2 = nextpow2(i);
if 2.^L2 == i
j = L2;
k = 0;
else
j = L2 - 1;
k = i - 2.^j;
end
end
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!