例如,我想要一个函数,让我删除矩阵中最高值为 1 的行。因此我写道:
% A is an input matrix
% pict2 suppose to be output cleared matrix
function pict2 = clear_(A)
B=A
n = size(A,1)
for i=1:n
if(max(B(i,:))==1)
B(i,:)=[]
end
end
但是在我打电话之后:
pict2=clear_(pict)
Matlab 响应:
"warning: clear_: some elements in list of return values are undefined warning: called from clear_ at line 5 column 1 pict2 = "
我不确定哪些元素未定义?
最佳答案
输出参数的变量名称必须与您要返回的变量相匹配。因此,您需要将第一行更改为以下内容,以便保存并返回您对 B
的修改。
function B = clear_(A)
就您的算法而言,它不会起作用,因为您在尝试循环遍历它时正在修改 B
。相反,您可以将整个函数替换为以下表达式,该表达式计算每行的最大值,然后确定该值是否等于 1
并删除属于这种情况的行。
B(max(B, [], 2) == 1, :) == [];
关于matlab - 矩阵作为Matlab函数的输入输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39758319/