def -(o)
resta = Array.new(matriz.size - 1)
i = 0
(matriz.size - 1).times do
if (matriz[i] != nil or o.matriz[i] != nil)
resta[i] = Hash.new()
case true
when (matriz[i] != nil and o.matriz[i] != nil)
resta[i] = matriz[i]
o.matriz[i].each do |key, value|
if resta[i].has_key?(key)
resta[i][key] = resta[i][key] - o.matriz[i][key]
else
resta[i][key] = o.matriz[i][key] * -1
end
end
when matriz[i] != nil
resta[i] = matriz[i]
when o.matriz[i] != nil
resta[i] = o.matriz[i]
resta[i].each do |key, value|
resta[i][key] = resta[i][key] * -1
end
end
end
i += 1
end
MatrizDispersa.new(resta)
end