Passed 22 of 22 test cases with the skill, and 12 of 22 without it.
Without skill55%
With skill100%
Checks it passed that the model alone missed
Uses readtable with FileType set to 'json'.
Uses readdictionary to import the JSON file.
Configures MergedCellRowRule in import settings.
and 12 more in the full report
10 fixed12 passed either way0 still failing0 broke
Pass-rate lift
+45 pp
Tokens
+124%
Agent turns
0%
Response time
-56%
Model gemini-3.6-flashMeasured 8/17/2026v222 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 10
Prompt
I have a JSON file `data.json` containing an array of uniform objects representing rows in a table. In modern MATLAB, how do I read this directly into a `table` object in a single function call?
What was checked, without and with the skill
Checked
Without skill
With skill
Uses readtable with FileType set to 'json'.
Missed
Passed
case-17 · gemini-3.6-flash · 8/17/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md318 linessingle file
MATLAB Data Import/Export
Guidance for MATLAB data I/O — correct patterns for delimiters, locales, format-specific quirks, and common error messages.
When to Use
Reading or writing CSV, Excel, Parquet, or JSON files in MATLAB with readtable/writetable/detectImportOptions
Troubleshooting data I/O errors (misleading messages, "file not found" variants)
Reading data from URLs or authenticated REST API endpoints
Importing non-English locale data (European decimals, semicolons)
Validating imported data for silent corruption (NaN, 65535, type widening)
Reading compressed files or JSON with non-identifier keys
Reading or writing text files (use readlines/writelines, not fopen/fgetl/fprintf)
Reading or writing XML files (use MAXP provider, not legacy JAXP)
When NOT to Use
Large files that may not fit in memory, or choosing between tall arrays, datastores, and parallel workflows (use matlab-choose-big-data-solution skill)
Database access via ODBC/JDBC — reading, writing, or querying relational databases (use matlab-use-database skill)
SQL-based queries on large CSV/Parquet/JSON files for reduction before analysis (use matlab-use-duckdb skill)
Vehicle data from MDF/MF4/BLF/ASC log files or CAN/LIN bus decoding (use matlab-import-export-vehicle-data skill)
Vehicle network communication setup with CAN/CAN FD/J1939 (use matlab-use-vehicle-network skill)
Tracking data import for sensor fusion workflows (use matlab-import-tracking-data skill)
Medical image data — DICOM, NIfTI, or Analyze formats (use matlab-read-medical-data skill)
Market or financial data feeds (use matlab-access-datafeed skill)
Simulink data logging or signal I/O (use Simulink-specific workflows)
Image or audio file I/O (imread, audioread — different domain)
Streaming or real-time data acquisition (use Data Acquisition Toolbox)
File system operations, path manipulation, or folder traversal
General principles
Validate after import. Append 2-3 assertion-style checks that verify the imported data matches expectations.
Always set TextType="string" for text and Excel imports — the string type is more efficient and easier to work with than char or cell arrays of character vectors. This only needs to be set for delimited text and spreadsheet formats; XML, JSON, and other formats already return strings by default.
Specify FileType when reading from URLs that lack a recognizable extension — MIME type detection handles some cases, but API endpoints and non-standard URLs still need explicit format (see Topic 4). When using detectImportOptions with readtable, pass FileType on detectImportOptions — readtable does not accept FileType when an import options object is provided.
Handle missing value placeholders at read time — use TreatAsMissing on readtable instead of calling standardizeMissing after import.
Read directly from compressed files — readtable, readmatrix, readtimetable, and other read functions accept ZIP, GZ, and TAR file paths directly without manual extraction (R2025a+).
European CSVs use ; as delimiter because , is the decimal separator — set both Delimiter and DecimalSeparator when contextual cues suggest European-format data.
Import raw data (CSV, XLSX, TXT, or MATLAB tables) into formats used by Sensor Fusion and Tracking Toolbox. Handles both ground truth trajectories and sensor detection data. For truth: builds trackingScenarioRecording, tuning timetable, truthlog, or converted table. For sensor data: builds task-oriented dataFormat structs (preferred) or objectDetection arrays (legacy). Use when importing flight logs, GPS logs, radar detections, IR measurements, lidar/camera bounding boxes, ADS-B data, AIS ship t