writetable command fails for any table in R2020b
Show older comments
A matlab script that has been running starting failing recently and I found the line that was failing was a writetable command. I looked at the table that was being written but the table looked fine to me. The error message when it failed was "Multiple strings and patterns given must have the same quantity". I made a small table (3x3) using the table command and then tried to use writetable and I got this same message so it seems to be happening for any table. I do not know what to do to resolve this.
3 Comments
Stephen23
on 26 May 2022
Also show us the output of this command:
which writetable -all
Jan
on 26 May 2022
Such problems can happen, if you have modified Matlab's toolbox functions on purpose or accidentally. Are you working with admin privileges? Do you store user-defined functions on top of the path, where they can shadow built-in functions?
Stephen23
on 27 May 2022
Michael Kerich's incorrectly posted "Answer" moved here:
Here is the information from the Matlab asked for:
>> tm = table ([1,2,3], [9,8,7],[20,21,22])
tm =
1×3 table
Var1 Var2 Var3
___________ ___________ ______________
1 2 3 9 8 7 20 21 22
>> writetable(tm, 'test')
Multiple strings and patterns given must have the same quantity.
>> which -all writetable
/usr/local/MATLAB/R2020b/toolbox/matlab/iofun/writetable.m
/usr/local/MATLAB/R2020b/toolbox/matlab/bigdata/@tall/writetable.m % tall method
As far as I know, this function is the same as it was when it was installed.
Answers (1)
Jan
on 27 May 2022
Use the debugger to find out the details. Let Matlab stop, when the problem occurs:
dbstop if caught error
Type this in the command window. Run the code again. When it stops, examine the reason by checking the locally used variables. What are the "multiple strings and patterns" the message is talking of?
Again: Do you store user-defined functions on top of the path, where they can shadow built-in functions?
6 Comments
Michael Kerich
on 27 May 2022
Michael Kerich
on 27 May 2022
"There is no script to debug in the example I posted it is all at the command line." - Nope. You have to debug the function writetable.
"The writetable command fails immediately" - as soon as you follow my instructions to enable the debugger, writetbale does not fail immediately, but stop, when the error occurs. The you have the chance to find the line which causes the error. I'm sure you find e.g. a command there, which calls a user-defined function, which shadows a built-in function. Therefore I've asked twice already, if you store user-defined functions on top of the path or if you append them securely to the end.
"No user defined scripts have been made with that name as far as I know." - This is not what I have asked for. The function writetable calls a large number of other Matlab functions. If one of these functions is shadowed by a user-defined function, such strange errors are expected.
If you install your software on another server and the problem is caused by your software, it is expected, that the same problem appears.
Sometimes it is frustrating, that I cannot simply type "dbstop if caught error" on your machine and let the code run. The debugging would take less than a second and it really easy. It takes much more time to type the instruction. But if you simply resist to follow my suggestion, I have no chance to help you.
So, well, good luck!
Michael Kerich
on 27 May 2022
Michael Kerich
on 31 May 2022
Walter Roberson
on 31 May 2022
Which toolbox turned out to be the problem?
Categories
Find more on Entering Commands in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!