我有一个矩阵,行数为 4 个整数,列数未指定(取决于文本文件)。
我想独立地将函数应用于矩阵的每一行。该函数有 4 个输入和 2 个输出。
我尝试使用 arrayfun 函数来执行此操作,但每当我调用该函数时,都会收到一条错误消息:“输入参数不足”。
这是函数调用:
[gain,phase]=arrayfun(@(x) GainPhaseComp(B(x,1:4)), 1:size(B));
其中 b 是 n x 4 矩阵。
这是函数:
function [gain,phase] = GainPhaseComp(InAmp,InPhase,OutAmp,OutPhase)
gain = 20*log10(OutAmp\InAmp);
phase = (OutPhase - InPhase);
end
任何帮助将不胜感激!
你的职能GainPhaseComp
有 4 个输入参数,但仅传递 1 个行向量。具有 4 个元素的向量仍然是一个变量,而不是 4 个。您需要更改函数定义或拆分向量元素。
第一个选项:
function [gain,phase] = GainPhaseComp(inputvector)
% function body
第二个选项:
[gain,phase]=arrayfun(@(x) GainPhaseComp(B(x,1),B(x,2),B(x,3),B(x,4)), 1:size(B,1));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)