matlab - 矩阵作为Matlab函数的输入输出

标签 matlab function matrix input

例如,我想要一个函数,让我删除矩阵中最高值为 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/

相关文章:

C++如何从成员函数访问变量?

python - 如何将输出的 Fortran 二进制 NxNxN 矩阵读入 Python

matlab - 使用 fminunc 函数

matlab - 比较两个不等长的向量得到一个逻辑数组

c - 如何在 C 中从 ASM 调用 C 函数?

python - "Online"函数的猴子修补

python - 给定一个类型为 `scipy.sparse.coo_matrix` 的矩阵,如何确定每一行的索引和最大值?

algorithm - 假设矩阵空间为 max(M,N)*max(M,N) 是否有顺时针旋转 M*N 二维矩阵的好方法

matlab - 如何在不使用嵌套函数的情况下求解 ODE?

matlab - 如何将灰度图像转换为n×3数组