У меня есть две функции в моем коде MATLAB, и я хочу, чтобы вывод одной функции использовался как ввод другой функции.Как я могу это реализовать?
medianfilter1.m
Код:
function ans = medianfilter(angstanding)
[m,n] = size(angstanding);
ans = zeros(m,n);
x = angstanding(:,1);
y = angstanding(:,2);
z = angstanding(:,3);
svm = angstanding(:,4);
ans(:,1) = medfilt1(x);
ans(:,2) = medfilt1(y);
ans(:,3) = medfilt1(z);
ans(:,4) = medfilt1(svm);
Вторая функция: windowing.m
Код:
function [wx,wy,wz,wsvm] = windowing(currentdata)
% i = 1;
% obseen = 128;
[r,c] = size(currentdata);
% display(r);
% while obseen <= r
% i = i +1;
% obseen = obseen + 64;
%
%
% end;
% display(i);
residue = rem((r - 128),64);
rows = floor((r-128)/64);
rows = rows + 1;
wx = zeros(rows,128);
wy = zeros(rows,128);
wz = zeros(rows,128);
wsvm = zeros(rows,128);
vectorx = currentdata(:,1);
vectory = currentdata(:,2);
vectorz = currentdata(:,3);
vectorsvm = currentdata(:,4);
for i = 1:rows
x = (64 * (i-1)) + 1;
if i ~= rows
lastj = 128;
else
break ;
end;
for j = 1:lastj
wx(i,j) = vectorx(x);
wy(i,j) = vectory(x);
wz(i,j) = vectorz(x);
wsvm(i,j) = vectorsvm(x);
x = x + 1;
end;
end;
и я хочу, чтобы результат medianfilter.m
был передан в windowing.m
.
Ниже я попробовал: merge.m
function ans = medianfilter(rawdataset_train_acc)
[m,n] = size(rawdataset_train_acc);
ans = zeros(m,n);
x = rawdataset_train_acc(:,1);
y = rawdataset_train_acc(:,2);
z = rawdataset_train_acc(:,3);
svm =rawdataset_train_acc(:,4);
ans(:,1) = medfilt1(x);
ans(:,2) = medfilt1(y);
ans(:,3) = medfilt1(z);
ans(:,4) = medfilt1(svm);
function [wx,wy,wz,wsvm] = windowing(ans)
% i = 1;
% obseen = 128;
[r,c] = size(ans);
% display(r);
% while obseen <= r
% i = i +1;
% obseen = obseen + 64;
%
%
% end;
% display(i);
residue = rem((r - 128),64);
rows = floor((r-128)/64);
rows = rows + 1;
wx = zeros(rows,128);
wy = zeros(rows,128);
wz = zeros(rows,128);
wsvm = zeros(rows,128);
vectorx = ans(:,1);
vectory = ans(:,2);
vectorz = ans(:,3);
vectorsvm = ans(:,4);
for i = 1:rows
x = (64 * (i-1)) + 1;
if i ~= rows
lastj = 128;
else
break ;
end;
for j = 1:lastj
wx(i,j) = vectorx(x);
wy(i,j) = vectory(x);
wz(i,j) = vectorz(x);
wsvm(i,j) = vectorsvm(x);
x = x + 1;
end;
end;
Я пытался выше, но не достиг того, чего хотел.Как я могу это сделать?