matlab/matlab-design-antennas
> Design antennas, arrays, and PCB antennas using MATLAB Antenna Toolbox. Covers catalog antenna design and pattern analysis, custom antenna construction (customAntenna + shape.*), PCB antenna design (pcbStack + antenna.*), finite and infinite array design, AI-accelerated design exploration (AIAntenna, patternFromAI), and optimization (SADEA/TR-SADEA). Use when the user wants to design, create, model, analyze, optimize, or fabricate an antenna or array.
npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-design-antennas
Design, analyze, and optimize antennas and arrays using MATLAB Antenna Toolbox —
from catalog elements to custom shapes, PCB fabrication, AI-accelerated exploration,
and surrogate-assisted optimization.
Catalog antenna design
Custom antenna design
PCB antenna design
Array design
AI-accelerated design
Optimization
matlab-analyze-antenna-structuresmatlab-integrate-antennascustomAntenna — use customAntenna only when no catalog antenna or system antenna matches the requested geometrydesign() unless user provides explicit dimensions or antenna lacks design() supportdesign() — design() adapts dimensions to the substrateSweepOption="interp" only with sparameters (not impedance) on substrate antennasshape.* namespace (NOT antenna.*) with customAntennacustomAntenna without createFeed cannot be analyzedextrudeLinear requires XY-plane shapescopy() to preserve before transformingBoardThickness BEFORE Layers — otherwise dielectric gets wrong thicknessantenna.* namespace (NOT shape.*) for pcbStack metal patterns{M,D,M}, ground is index 3design() does not work on pcbStack — design catalog antenna first, then convertFilename must be char ('single quotes'), not "string"design(arr, freq, element) — omitting resets to dipoleAmplitudeTaper for rectangularArray is column-major orderphaseShift() for finite steering, ScanAzimuth/ScanElevation for infinitedesign(..., ForAI=true) — direct em.ai.AIAntenna() constructor not supportedpatternFromAI must be row vectors with 1-degree integer spacingexportAntenna + full-wave simulationdesign() to get physically reasonable initial dimensions{lb1,lb2; ub1,ub2}, Tier 2 bounds: numeric matrix [lb;ub]FrequencyRange explicitly for bandwidth optimization (default +/-5% may not match target)design(ant, freq)mesh(ant, MaxEdgeLength=lambda/8) for substrate antennaspolarpatternshape.* primitives (Rectangle, Box, Cylinder, Polygon)translate, rotate, scale (handle objects — copy first)+ (union), - (subtract), & (intersect)extrudeLinear (taper) or extrudeRotate (revolution)customAntenna(Shape=...), createFeed(ant, loc, numEdges)mesh(ant, MaxEdgeLength=lambda/6), impedance, patternpcbStack, set BoardThickness FIRST, then Layersantenna.* shapes with boolean operationsFeedLocations = [x, y, sigLayer, gndLayer]SweepOption="interp"), patterngerberWrite with PCBWriter, PCBServices, PCBConnectorsdesign(arr, freq, element)phaseShift() finite, ScanAzimuth/ScanElevation infiniteAmplitudeTaper (column-major for rectangular)arrayFactor (fast) → patternMultiply → pattern (accurate)sparameters, correlation, isolation metricsdesign(ant, freq, ForAI=true) for supported typestunableRanges, parametric sweep, resonantFrequency, bandwidthexportAntenna + full-wave impedance/patternpatternFromAI from 2D slices (row vectors, 1-deg spacing)optimize() or OptimizerSADEA/OptimizerTRSADEAgetBestMemberData, showConvergenceTrend, isConverged| Class | Purpose |
|-------|---------|
| design() | Scale catalog antennas to frequency |
| customAntenna | Arbitrary geometry from shape.* primitives |
| pcbStack | Multi-layer PCB antenna with antenna.* shapes |
| linearArray / rectangularArray / circularArray | Finite arrays |
| conformalArray | Arbitrary element positions (MIMO, custom) |
| infiniteArray | Unit cell with Floquet BC |
| em.ai.AIAntenna | Pretrained surrogate for instant prediction |
| patternFromAI | 3D pattern from 2D slices |
| optimize() | Built-in SADEA for catalog antennas |
| OptimizerSADEA / OptimizerTRSADEA | Custom optimization |
"double quotes" for strings (except Gerber Filename which requires 'char')fprintf for formatted outputpattern, show, rfplot, impedance)plot figures and TitleTop to polarpatternphysconst("LightSpeed") — never hardcode 3e8For design, analysis, or sweep tasks — write code to .m files, run via run_matlab_file, iterate by editing and re-running. Use inline evaluate_matlab_code for quick one-off checks.
| Load when... | Reference |
|-------------|-----------|
| Designing catalog antennas (types, design(), substrate, patterns) | references/catalog-antennas.md |
| Building custom antennas (shape.*, extrusion, feeds, substrate) | references/custom-antennas.md |
| Designing PCB antennas (pcbStack, layers, boolean, Gerber) | references/pcb-antennas.md |
| Designing arrays (finite, infinite, steering, taper, MIMO) | references/arrays.md |
| AI design exploration (AIAntenna, patternFromAI, surrogates) | references/ai-antenna-workflows.md |
| Optimizing antennas (SADEA, bounds, constraints, custom eval) | references/optimization.md |
----
Copyright 2026 The MathWorks, Inc.
Take matlab/matlab-design-antennas from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.