Is it possible to disable or get warnings when using .* on mismatched vectors?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Chuck37
el 13 de Dic. de 2017
Comentada: Walter Roberson
el 13 de Dic. de 2017
I've finally moved up from 2014b and I see there is a new feature(s) that lets you do math operations that would have previously resulted in errors. For example, you can now use .* on vectors of different shapes. I can see how this could be handy sometimes, but in practice, I lose track of whether a vector is a row or column and instead of getting an error, MATLAB makes a big matrix and moves on. In bad cases, the math to follow is also valid resulting in weird answers. Is there a way to at least have this give out a warning?
1 comentario
Respuesta aceptada
Jan
el 13 de Dic. de 2017
Editada: Jan
el 13 de Dic. de 2017
No. Modern Matlab versions use "auto-expanding" e.g. for the elementwise multiplication .* . There is no way to produce a warning for this new standard behavior.
This has been discussed repeatedly and emotionally, because it has some advantages, but is an evil break with backward compatibility.
1 comentario
Walter Roberson
el 13 de Dic. de 2017
I know that I for one would like to be able to disable it during my test / debugging cycles.
For example it is not uncommon for me to grab existing software to try to assist someone with it -- software I did not write. That software sometimes has bugs in row vs column use. If I just go ahead and run it, then implicit expansion can end up silently giving me strange results, which I might not be able to easily distinguish from the other bugs in the code.
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!