问题如下:
我现在有两个矩阵:
A=\left[\begin{matrix}0&1&2&3\\4&5&6&7\\... \end{matrix} \right], B=\left[\begin{matrix}1&2&3\\4&6&7\\&... \end{matrix} \right]
其中 A 的第一行包含了 B 的第一行, A 的第二行包含了 B 的第二行。
我现在想要对 A,B 两个矩阵的每一行作比较,然后输出矩阵 A 中多余的元素,例如当对比第一行时输出 0 ,对比第二行输出 5 。
大家有没有比较快捷方法,说下思路就好
,或者julia是不是有自带的方法可以直接解决呢?
直接对行进行循环
nrows = size(A, 1)
R = zeros(Int, nrows)
@inbounds for i in 1:nrows
@views d = setdiff(A[i, :], B[i, :])
isempty(d) || R[i] = d[1]
end
有一个eachrow,eachcol是可以拿来用的 (Julia v1.1+). 例如…
julia> map((ra, rb)->setdiff(ra, rb), eachrow(A), eachrow(B))
2-element Array{Array{Int64,1},1}:
[0]
[5]
3 个赞