On 28-Jun-2009, Robert T. Short wrote:
| Attached is a patch to conv.m that fixes a MATLAB incompatibility. I
| also added a couple of tests.
|
| Summarizing: if the input vectors are the same length, but one is a row
| vector and the other is a column vector, the octave version returns the
| correct answer but with a different orientation than MATLAB. In other
| words octave will return a row vector when MATLAB returns a column
| vector and octave will return a column vector when MATLAB returns a row
| vector.
|
|
| WARNING. APPLYING THIS PATCH COULD CAUSE SCRIPT BREAKAGE!
|
| Scripts that depend on the row/column nature of the result will no
| longer work. This might be a good reason not to apply this patch.
| Folks (like me) that want MATLAB compatibility can keep this version in
| their path.
I checked in this patch but had to make a few additional changes to
allow the tests to run.
You had
%!test
%! ...
%! error conv (...);
but that's a syntax error. The error directive generates a separate
test, so must be written as
%!error conv (...);
Also, I think it is probably better to write
%! assert (conv (...), [...])
instead of
%! assert (all (conv (...) == [...]))
If you want each assert to count as a separate test, you can write
%!shared ...
%! variable definitions..
%!assert (...)
%!assert (...)
%!...
instead of
%!test
%! variable definitions...
%! assert (...)
%! assert (...)
%! ...
jwe