# Differences between Octave and Matlab on division (/) operator with scalar and vector

5 messages
Open this post in threaded view
|
Report Content as Inappropriate

## Differences between Octave and Matlab on division (/) operator with scalar and vector

 Hello: Using this variables: a = 2; b = [1 2 3]; For the operation a/b or 2/b or b/2 I obtain an error in Octave and Matlab due to wrong dimensions. But if I declare b as a vector column as b=[1 2 3]' I obtain in Octave: >> a/b ans =    0.14286   0.28571   0.42857 and in Matlab: >> a/b ans =          0         0    0.6667 What is the reason of this difference? Why the operation is legal with b as column vector and illegal with row vector? Thanks -- ***************************************** José Luis García Pallero [hidden email] (o< / / \ V_/_ Use Debian GNU/Linux and enjoy! ***************************************** _______________________________________________ Help-octave mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/help-octave
Open this post in threaded view
|
Report Content as Inappropriate

## Re: Differences between Octave and Matlab on division (/) operator with scalar and vector

 José Luis García Pallero wrote Hello: Using this variables: a = 2; b = [1 2 3]; For the operation a/b or 2/b or b/2 I obtain an error in Octave and Matlab due to wrong dimensions. But if I declare b as a vector column as b=[1 2 3]' I obtain in Octave: >> a/b ans =    0.14286   0.28571   0.42857 and in Matlab: >> a/b ans =          0         0    0.6667 What is the reason of this difference? Why the operation is legal with b as column vector and illegal with row vector? Thanks Your problem does not have a unique solutions and Octave favors a different (sparse) one. I had recently also problems with this issues, including the different handling w.r.t. dimensions. You find the discussion here: http://octave.1599824.n4.nabble.com/Bug-when-dividing-a-scalar-by-a-vector-td4681411.htmlSebastian
Open this post in threaded view
|
Report Content as Inappropriate

## Re: Differences between Octave and Matlab on division (/) operator with scalar and vector

 In reply to this post by José Luis García Pallero On Sat, Mar 25, 2017 at 6:48 PM, José Luis García Pallero <[hidden email]> wrote: > Hello: > > Using this variables: > > a = 2; > b = [1 2 3]; > > For the operation a/b or 2/b or b/2 I obtain an error in Octave and > Matlab due to wrong dimensions. But if I declare b as a vector column > as b=[1 2 3]' I obtain in Octave: > >>> a/b > ans = > >    0.14286   0.28571   0.42857 > > and in Matlab: > >>> a/b > > ans = > >          0         0    0.6667 > > What is the reason of this difference? Why the operation is legal with > b as column vector and illegal with row vector? > > Thanks > > -- > ***************************************** > José Luis García Pallero > [hidden email] > (o< > / / \ > V_/_ > Use Debian GNU/Linux and enjoy! > ***************************************** > > _______________________________________________ > Help-octave mailing list > [hidden email] > https://lists.gnu.org/mailman/listinfo/help-octaveIn Octave a/b when b is a matrix (any size), is equivalent to a*inv(b), in this case a*pinv(b) (try it out). I can't see what matlab is doing, but the last element is 2/3. I also do not understand why there is an error in the first case, should given the same result...i.e. apply a*pinv(b) when b is a row vector _______________________________________________ Help-octave mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/help-octave
Open this post in threaded view
|
Report Content as Inappropriate

## Re: Differences between Octave and Matlab on division (/) operator with scalar and vector

 On Sat, Mar 25, 2017 at 2:51 PM, Juan Pablo Carbajal <[hidden email]> wrote: > On Sat, Mar 25, 2017 at 6:48 PM, José Luis García Pallero > <[hidden email]> wrote: >> Hello: >> >> Using this variables: >> >> a = 2; >> b = [1 2 3]; >> >> For the operation a/b or 2/b or b/2 I obtain an error in Octave and >> Matlab due to wrong dimensions. But if I declare b as a vector column >> as b=[1 2 3]' I obtain in Octave: >> >>>> a/b >> ans = >> >>    0.14286   0.28571   0.42857 >> >> and in Matlab: >> >>>> a/b >> >> ans = >> >>          0         0    0.6667 >> >> What is the reason of this difference? Why the operation is legal with >> b as column vector and illegal with row vector? >> >> Thanks >> >> -- >> ***************************************** >> José Luis García Pallero >> [hidden email] >> (o< >> / / \ >> V_/_ >> Use Debian GNU/Linux and enjoy! >> ***************************************** >> >> _______________________________________________ >> Help-octave mailing list >> [hidden email] >> https://lists.gnu.org/mailman/listinfo/help-octave> In Octave a/b when b is a matrix (any size), is equivalent to > a*inv(b), in this case a*pinv(b) (try it out). > I can't see what matlab is doing, but the last element is 2/3. > > I also do not understand why there is an error in the first case, > should given the same result...i.e. apply a*pinv(b) when b is a row > vector > > _______________________________________________ > Help-octave mailing list > [hidden email] > https://lists.gnu.org/mailman/listinfo/help-octaveI just tried this on MATLAB version 2016a, and got the following results: >> a = 2; >> b = [1 2 3]; >> 2/b Error using  / Matrix dimensions must agree. >> a/b Error using  / Matrix dimensions must agree. >> b/2 ans =     0.5000    1.0000    1.5000 Are you sure that b/2 caused an error?  That is well defined and should produce elementwise division by 2. James Sherman _______________________________________________ Help-octave mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/help-octave