{
  "schemaVersion": "1.0",
  "item": {
    "slug": "matlab",
    "name": "MATLAB",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/matlab",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/matlab",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/matlab",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=matlab",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/matlab"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/matlab",
    "agentPageUrl": "https://openagent3.xyz/skills/matlab/agent",
    "manifestUrl": "https://openagent3.xyz/skills/matlab/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/matlab/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Indexing",
        "body": "1-based indexing — first element is A(1), not A(0)\nend keyword for last index — A(end), A(end-1), works in any dimension\nLinear indexing on matrices — A(5) accesses 5th element column-major order\nLogical indexing returns vector — A(A > 0) gives 1D result regardless of A's shape"
      },
      {
        "title": "Matrix vs Element-wise",
        "body": "* is matrix multiplication — .* for element-wise\n/ solves A*x = B — ./ for element-wise division\n^ is matrix power — .^ for element-wise power\nForgetting the dot is silent bug — dimensions might accidentally match"
      },
      {
        "title": "Vector Shape Matters",
        "body": "Row vector: [1 2 3] or [1, 2, 3] — shape is 1×3\nColumn vector: [1; 2; 3] — shape is 3×1\nTranspose with ' (conjugate) or .' (non-conjugate) — for complex, they differ\n* between row and column gives scalar or matrix — depending on order"
      },
      {
        "title": "Array Preallocation",
        "body": "Growing arrays in loops is slow — preallocate: A = zeros(1000, 1)\nzeros, ones, nan for preallocation — specify size upfront\nCell arrays: cell(n, m) — preallocate cells too"
      },
      {
        "title": "Broadcasting",
        "body": "Implicit expansion since R2016b — A + b works if dimensions compatible\nSingleton dimensions expand — [1;2;3] + [10 20] gives 3×2\nBefore R2016b needed bsxfun — legacy code may still use it"
      },
      {
        "title": "NaN Handling",
        "body": "NaN ~= NaN is true — use isnan() to check\nMost operations propagate NaN — sum([1 NaN 3]) is NaN\nUse 'omitnan' flag — sum(A, 'omitnan'), mean(A, 'omitnan')"
      },
      {
        "title": "Cell Arrays vs Matrices",
        "body": "{} for cell arrays — hold mixed types, different sizes\n() indexing returns cell — C(1) is 1×1 cell\n{} indexing extracts content — C{1} is the actual value\nComma-separated list from C{:} — useful for function arguments"
      },
      {
        "title": "Common Mistakes",
        "body": "= for assignment, == for comparison — if x = 5 is error in MATLAB\nSemicolon suppresses output — forget it and flood command window\nclear removes all variables — use clearvars for selective, close all for figures\ni and j are imaginary unit — don't use as loop variables, or reassign explicitly\nString vs char: \"text\" vs 'text' — double quotes are string arrays (R2017a+)"
      },
      {
        "title": "Functions",
        "body": "Anonymous functions: f = @(x) x^2 — quick inline functions\nMultiple outputs: [a, b] = func() — must capture or use ~ to ignore\nnargin/nargout for optional args — check how many inputs/outputs provided\nvarargin/varargout for variable args — cell array of extra arguments"
      },
      {
        "title": "Debugging",
        "body": "dbstop if error — breakpoint on any error\nkeyboard in code pauses execution — enter debug mode at that line\nwhos shows variable sizes — size(A) for specific variable"
      }
    ],
    "body": "Indexing\n1-based indexing — first element is A(1), not A(0)\nend keyword for last index — A(end), A(end-1), works in any dimension\nLinear indexing on matrices — A(5) accesses 5th element column-major order\nLogical indexing returns vector — A(A > 0) gives 1D result regardless of A's shape\nMatrix vs Element-wise\n* is matrix multiplication — .* for element-wise\n/ solves A*x = B — ./ for element-wise division\n^ is matrix power — .^ for element-wise power\nForgetting the dot is silent bug — dimensions might accidentally match\nVector Shape Matters\nRow vector: [1 2 3] or [1, 2, 3] — shape is 1×3\nColumn vector: [1; 2; 3] — shape is 3×1\nTranspose with ' (conjugate) or .' (non-conjugate) — for complex, they differ\n* between row and column gives scalar or matrix — depending on order\nArray Preallocation\nGrowing arrays in loops is slow — preallocate: A = zeros(1000, 1)\nzeros, ones, nan for preallocation — specify size upfront\nCell arrays: cell(n, m) — preallocate cells too\nBroadcasting\nImplicit expansion since R2016b — A + b works if dimensions compatible\nSingleton dimensions expand — [1;2;3] + [10 20] gives 3×2\nBefore R2016b needed bsxfun — legacy code may still use it\nNaN Handling\nNaN ~= NaN is true — use isnan() to check\nMost operations propagate NaN — sum([1 NaN 3]) is NaN\nUse 'omitnan' flag — sum(A, 'omitnan'), mean(A, 'omitnan')\nCell Arrays vs Matrices\n{} for cell arrays — hold mixed types, different sizes\n() indexing returns cell — C(1) is 1×1 cell\n{} indexing extracts content — C{1} is the actual value\nComma-separated list from C{:} — useful for function arguments\nCommon Mistakes\n= for assignment, == for comparison — if x = 5 is error in MATLAB\nSemicolon suppresses output — forget it and flood command window\nclear removes all variables — use clearvars for selective, close all for figures\ni and j are imaginary unit — don't use as loop variables, or reassign explicitly\nString vs char: \"text\" vs 'text' — double quotes are string arrays (R2017a+)\nFunctions\nAnonymous functions: f = @(x) x^2 — quick inline functions\nMultiple outputs: [a, b] = func() — must capture or use ~ to ignore\nnargin/nargout for optional args — check how many inputs/outputs provided\nvarargin/varargout for variable args — cell array of extra arguments\nDebugging\ndbstop if error — breakpoint on any error\nkeyboard in code pauses execution — enter debug mode at that line\nwhos shows variable sizes — size(A) for specific variable"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/matlab",
    "publisherUrl": "https://clawhub.ai/ivangdavila/matlab",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/matlab",
    "downloadUrl": "https://openagent3.xyz/downloads/matlab",
    "agentUrl": "https://openagent3.xyz/skills/matlab/agent",
    "manifestUrl": "https://openagent3.xyz/skills/matlab/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/matlab/agent.md"
  }
}