My problem is quite simple: I have a 2D array of "height" values (floating point) for a 3D array of data (x and y values are implied), and an equally sized 2D array of color data which may not be assigned using a simple color function because color is not dependent on the height value and must be pre-computed. To get around using the color function, I thought to assign the vertex colors directly.
My code is simply:
data = Import[*file*]
colors = ToExpression /@ Import[*file*]
ListPlot3D[data, VertexColors->colors]
However, I get a runtime error:
VertexColors::errmatrixcol: {"magenta", "magenta", ...} must be a color-valued matrix of X by Y.
It is odd, because the online documentation does not use the terminology "color-valued" anywhere. I've tried using colors (converted from imported string as shown), RGB values, 6-digit hex representation, raw color strings, and I always receive the same error.
I've also tried the methods shown here, which do not require converting the string to a color using "ToExpression". The examples provided work well as provided, but I cannot get them to work with my data. I should mention my array is 15x12,000 but the example does not work for even simple arrays, such as 5x5. I even thought the problem had to do with my older version (10.2), but the problem persists in 10.3.1. Does anyone have a solution?
I've also thought to try to plot this directly using Graphics3D, however the data plots just fine as:
ListPlot3D[data]

Also worth noting, the error disappears if:
color = ToExpression /@ Import[*file*] // TableForm;
ListPlot3D[data, VertexColors->colors]
However, the plot is the same default color, and therefore the VertexColors assignment is not working for some reason. If anyone may have an idea as to why this is occurring, I would be most grateful.