A collection of MATLAB coding rules and guidelines optimized for use with AI coding assistants like Cursor, Windsurf, Claude Code, and GitHub Copilot.
This repository provides modular, reusable rule files that help AI coding assistants generate high-quality MATLAB code that follows best practices and coding standards. Each rule file focuses on a specific aspect of MATLAB development.
Comprehensive MATLAB coding standards covering:
- Naming conventions for variables, functions, classes, and properties
- Statement and expression guidelines
- Formatting rules and whitespace conventions
- Function and class authoring best practices
- Error handling patterns
Use this rule when: Writing or reviewing any MATLAB code for standards compliance
Guidelines for generating MATLAB Live Scripts in plain text .m format:
- Plain text Live Script formatting rules
- Section structure and documentation
- Mathematical notation and LaTeX support
- Visualization best practices
- Version control compatibility
Use this rule when: Creating MATLAB Live Scripts that need to be version-controlled or AI-generated
Choose your AI coding tool and follow the appropriate setup instructions:
Option 1: Project Rules (Recommended)
- Create a
.cursor/rulesdirectory in your project - Copy the rule files you want to use:
mkdir .cursor/rules cp matlab-coding-standards.md .cursor/rules/ cp live-script-generation.md .cursor/rules/
- Cursor will automatically load these rules for your project
Option 2: Reference with @
In your Cursor chat, reference rules directly:
@matlab-coding-standards.md Write a function to calculate eigenvalues
Option 3: Global Rules
Add to Cursor Settings > General > Rules for AI:
When writing MATLAB code, follow the standards at @matlab-coding-standards.md
Option 1: Workspace Rules
- Create a
.windsurf/rulesdirectory in your workspace - Copy the rule files:
mkdir .windsurf/rules cp matlab-coding-standards.md .windsurf/rules/ cp live-script-generation.md .windsurf/rules/
- Windsurf will automatically apply these rules to your workspace
Option 2: Global Rules
Add to your global_rules.md:
# MATLAB Development
When working with MATLAB code:
1. Follow naming conventions: lowerCamelCase for functions, UpperCamelCase for classes
2. Use arguments blocks for input validation
3. Limit function inputs to 6 or fewer
4. Use spaces (4 per indent), not tabs
5. Keep lines <= 120 characters
For complete standards, reference: [path/to/matlab-coding-standards.md]Option 1: Project CLAUDE.md (Recommended)
Create a CLAUDE.md file in your project root:
# MATLAB Project Rules
When working with MATLAB code in this project, import and follow these rules:
@matlab-coding-standards.md
@live-script-generation.mdOption 2: Direct Reference
In your conversation with Claude Code, use the @ symbol:
Please review this code for standards compliance @matlab-coding-standards.md
[paste your code]
Option 3: User-Level Rules
Add to ~/.claude/CLAUDE.md:
# MATLAB Development Rules
When I'm working with MATLAB code, always:
- Follow the standards in @matlab-coding-standards.md
- Use lowerCamelCase for functions and UpperCamelCase for classes
- Validate inputs using arguments blocks
- Keep code readable with proper spacing and commentsOption 1: Repository Instructions
Create .github/copilot-instructions.md:
# MATLAB Coding Standards
This repository uses MATLAB. Follow these standards:
## Naming Conventions
- Functions: lowerCamelCase
- Classes: UpperCamelCase
- Variables: lowerCamelCase (descriptive names)
- Name-Value arguments: UpperCamelCase
## Code Style
- Indentation: 4 spaces (no tabs)
- Line length: <= 120 characters
- Use arguments blocks for input validation
- Limit functions to <= 6 input arguments
- Use " for strings (not ')
## Documentation
- H1 line immediately after function declaration
- Include help text with syntax, inputs, outputs
- Use %% for section dividers
For complete standards, see: matlab-coding-standards.mdOption 2: Path-Scoped Instructions
Create .github/instructions/matlab.instructions.md:
---
applyTo:
- "**/*.m"
- "**/*.mlx"
---
# MATLAB Code Standards
When generating or modifying MATLAB code:
- Follow naming: lowerCamelCase for functions, UpperCamelCase for classes
- Use arguments blocks for validation
- 4-space indentation, <= 120 char lines
- Include clear function documentation
- Avoid global variables, eval, command syntax in functions
See matlab-coding-standards.md for complete guidelines.Cursor / Windsurf / Claude Code:
@matlab-coding-standards.md Write a function that validates email addresses using regular expressions. Include input validation and proper documentation.
GitHub Copilot:
// Write a MATLAB function that validates email addresses
// Follow the project's coding standards
// Include arguments block for validation
Any Tool:
@live-script-generation.md Generate a plain text MATLAB Live Script that demonstrates linear regression with:
- Introduction to the concept
- Sample data generation
- Fitting a linear model
- Visualization with plot
- Explanation of results
Claude Code:
Review this MATLAB code for standards compliance @matlab-coding-standards.md
function result = calculateAverage(data)
x=mean(data);
result=x;
end
Cursor:
@matlab-coding-standards.md Check if this code follows our standards and suggest improvements:
[paste code]
Any Tool with access to rules:
Refactor this MATLAB function to follow @matlab-coding-standards.md:
- Improve variable naming
- Add input validation with arguments block
- Fix formatting and spacing
- Add proper documentation
[paste code]
With Cursor/Windsurf/Claude Code:
@matlab-coding-standards.md Design a MATLAB value class for representing a 2D point with:
- Properties: X and Y coordinates
- Methods: distance, midpoint, translate
- Input validation
- Proper documentation
You can reference multiple rule files in a single prompt:
Cursor / Claude Code:
@matlab-coding-standards.md @live-script-generation.md
Create a plain text Live Script that demonstrates object-oriented programming in MATLAB. Include a class definition and usage examples. Follow all coding standards.
GitHub Copilot (.github/copilot-instructions.md):
# Combined MATLAB Rules
Apply both:
1. MATLAB Coding Standards (matlab-coding-standards.md)
2. Live Script Generation rules (live-script-generation.md)
When creating Live Scripts, use plain text format AND follow naming/formatting standards.- Keep rules modular: Each file focuses on one aspect of MATLAB development
- Reference, don't copy: Use @ references to avoid duplication
- Update centrally: Maintain rules in this repo, reference them in projects
- Be specific: Reference the exact rule file you need
- Combine rules: Use multiple @ references when needed
- Provide context: Include relevant code or requirements with rule references
- Request validation: Ask AI to verify compliance with rules
Cursor:
- Project rules in
.cursor/rulesare always active - Use @ for selective rule application
- Global rules apply to all projects
Windsurf:
- Workspace rules are project-specific
- Global rules apply everywhere
- Use file patterns to scope rules
Claude Code:
- CLAUDE.md is read automatically on startup
- @ syntax allows dynamic rule inclusion
- Can chain multiple @ references
GitHub Copilot:
- Instructions are always active in the repo
- Path-scoped rules target specific file types
- Keep instructions concise (it gets included in every request)
To add new rules or improve existing ones:
- Create a new
.mdfile following the existing format - Include a clear header describing the rule's purpose
- Organize rules into logical sections
- Add examples where helpful
- Update this README with usage examples
Based on:
This work is licensed under a Creative Commons Attribution 4.0 International License.
Note: These rules are designed to work with AI coding assistants. While they provide comprehensive guidance, always review AI-generated code and adapt rules to your specific project needs.