In a nutshell:
- single quotes define a character vector with size 1xN, where N is the number of characters between the quotes.
- double quotes define a string array with size 1x1 (i.e. scalar, regardless of how many characters it has). You can think of string arrays as a kind of container for character vectors.
String arrays have some advantages, such as it is possible to have text data with exactly the same dimensions as corresponding numeric data, and there also exist many overloaded operations which perform useful implcit operations on strings. However they also require more memory, can be slower than using character vectors, and are not supported on MATLAB versions prior to R2016b.
"Does fprintf and disp make a difference also regarding when using ' or ""
In many situations where a character vector can be used a string scalar is also supported: read the online documentation for the specific functions to know what inputs it accepts. Providing a string/character vector can make a difference: for example, sprintf will return an output of the same class as its formatSpec input argument.