Fixing Matlab Plot Error: Invalid Color/Linetype Argument

  • Context: MATLAB 
  • Thread starter Thread starter MathematicalPhysicist
  • Start date Start date
  • Tags Tags
    Plot
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
11 replies · 5K views
Messages
4,662
Reaction score
372
I am using Matlab's 2017Rb academic license.

And while trying to operate the following sequence of commands:
Matlab:
x = linspace(0,2*pi,1000);
y = sin(2*x);
plot(x,y,'k−','linew',2); hold on;

I get the following warning:
Matlab:
Error using plot
Error in color/linetype argument.

What seems to be wrong in the above code?

Thanks.
 
on Phys.org
MathematicalPhysicist said:
So the error is in 'k-', how it should be?
'-k', yes now it works.
But... '-k' make the same as 'k' I think...
 
MathematicalPhysicist said:
So the error is in 'k-', how it should be?
'-k', yes now it works.
Interesting. The documentation says that the order of the symbols doesn't matter. So this is either a bug or there is something else going on.
 
  • Like
Likes   Reactions: AgusCF
FactChecker said:
Interesting. The documentation says that the order of the symbols doesn't matter. So this is either a bug or there is something else going on.
Did you try it in your machine?

I have Ubuntu 16.04 as the OS in this computer.
 
MathematicalPhysicist said:
Yes, it works as well.
And... Why were you trying to plot 'k-'?
 
MathematicalPhysicist said:
Did you try it in your machine?

I have Ubuntu 16.04 as the OS in this computer.
I'm retired and no longer have access to MATLAB. I'm thinking about buying it just for these occasions.
 
It's not a bug. And the order doesn't matter. The problem is you don't have a dash in there. It's some character that looks like a dash but isn't. When I paste in your code it shows the error message

Error using plot
Error in color/linetype argument.
Error in test1 (line 3)
plot(x,y,'k?','linew',2); See the question mark indicating it doesn't know what that character is? If you get rid of that "dash" and replace it with a real dash (minus sign), it will work perfectly fine.
 
  • Like
Likes   Reactions: MathematicalPhysicist and FactChecker
Image Analyst said:
It's not a bug. And the order doesn't matter. The problem is you don't have a dash in there. It's some character that looks like a dash but isn't. When I paste in your code it shows the error message

Error using plot
Error in color/linetype argument.
Error in test1 (line 3)
plot(x,y,'k?','linew',2);See the question mark indicating it doesn't know what that character is? If you get rid of that "dash" and replace it with a real dash (minus sign), it will work perfectly fine.
Good catch! This is one of the frustrating things about copying and pasting text -- they can have characters and do other things you don't want. I like to paste into a programmer editor that I can control, like vim, just to be sure that the text is exactly what I wanted. I often have to replace things that I don't want in code. Then I copy the vim text and paste that into the target code.