I want to create a function z=f(a,b)..how can I create like this using the below code?

2 次查看(过去 30 天)
if true
a=Ns;
b=8;
if ~mod(a,b)
z=0
else
z=b-mod(a,b);
end
end

采纳的回答

Image Analyst
Image Analyst 2018-1-20
MATLAB documentation tells you how to make functions. Like, to make your "f" function you'd do this:
function z = f(a, b)
if ~mod(a,b)
z=0
else
z=b-mod(a,b);
end
To call it, you'd do this:
a = Ns;
b = 8;
z = f(a, b)
  4 个评论
PLACEIUS NISHIGA G
PLACEIUS NISHIGA G 2018-1-20
编辑:Walter Roberson 2018-1-20
clc;
clear all;
close all;
img = imread('cameraman.tif');
c=img';
d=c(:);
[W,L]=size(img);
k=randi(192,1,192);
syms k1 t
for i=1:4
k1=k(((48*i)-47):(48*i));
a1 = symsum(k1*(2^(t-(48*i)+47)),t,((48*i)-47),(48*i));
a2=a1/(2^48);
end
for x=1:2
r(x)=mod(prod(a2*(2^48)+a2(x)),0.4)+3.6;
C(x)=mod(prod(a2*(2^48)+a2(x+2)),1);
end
C1=C(1);
C2=C(2);
for y=1:[W,L]
if y==1
C(y)=C(x);
else
if y~=1&&C(y-1)<0.5
C(y)=0.5*(r(x)*C(y-1));
else
if y~=1&&C(y-1)>=0.5
C(y)=0.5*(r(x)*(1-(C(y-1))));
end
end
end
end
for y=1:[W,L]
if y==1
E1(y)=d(y);
else
E1(y)=mod(d(y)+floor(C(y)*(10^13))+d(y-1),256);
end
end
for y=1:[W,L]
if y==[W,L]
E2(y)=E1(y);
else
E2(y)=mod(E1(y)+floor(C(y)*(10^13))+E1(y+1),256);
end
end
E2=E2';
Q=sum(E2');
Q=sym2poly(Q);
for j=1:192
q=dec2bin(Q,j);
kb=dec2bin(k,j);
end
kb = kb(randi(size(kb,1)),:);
k2=xor(q,kb);
E=[1,(W*L)+24];
E={k2,E2};
k=3;
n=5;
m=(2*k)-2;
n1=k-1;
N=(factorial(m))/(factorial(n1)*factorial(n1));
o = ones(k-1,1) ;
z = zeros(k-1,1) ;
a1 = [o ; z];
v = a1' ;
a = unique(perms(v),'rows');
a=a';
a= a(:, randperm(size(a, 2)))
x1=log2(n/m);
x=ceil(x1);
I=max(x,0);
Ns=N^(I+1);
b=[(m*(2^I)),Ns];
nrows=length(a(:,1));
ncols=length(a);
Nr=nrows/2;
y=ceil(Nr);
o1=ones(y,ncols);
m1=a(1:y,:);
m2=a((y+1):nrows,:);
afinal = zeros(b);
for r=1:nrows
for c=1:ncols
if a(r,c)==0
afinal(Nr*(r-1)+1:Nr*(r-1)+Nr,ncols*(c-1)+1:ncols*(c-1)+ncols) = o1;
else
if(r<3)
afinal(Nr*(r-1)+1:Nr*(r-1)+Nr,ncols*(c-1)+1:ncols*(c-1)+ncols) = m1;
else
afinal(Nr*(r-1)+1:Nr*(r-1)+Nr,ncols*(c-1)+1:ncols*(c-1)+ncols) = m2;
end
end
end
end
R = randperm(size(afinal,1));
R = R(1:n);
S=afinal(R,:);
D(1)=floor(Ns/256);
D(2)=mod(Ns,256);
t=ceil(Ns/8);
c = Ns;
d= 8;
z = f(c, d)
function z = f(c,d)
if ~mod(c,d)
z=0
else
z=d-mod(c,d);
end
end
Walter Roberson
Walter Roberson 2018-1-20
If you are using R2016a or earlier, you will need to store the code starting from 'function' in the file f.m

请先登录,再进行评论。

更多回答(1 个)

Walter Roberson
Walter Roberson 2018-1-20
The calculation simplifies.
f = @(a,b) mod(-a, b);
This applies even for negative a

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by