{ "cells": [ { "cell_type": "markdown", "id": "ds-0", "metadata": {}, "source": "# Data structures and strings\n\nCell arrays, structs, key/value maps, and text handling." }, { "cell_type": "markdown", "id": "ds-1", "metadata": {}, "source": "## Cell arrays hold mixed types" }, { "cell_type": "code", "id": "ds-2", "metadata": {}, "execution_count": null, "outputs": [], "source": "c = {42, 'hello', [1 2 3]};\nc{2}\nclass(c{3})\nnumel(c)" }, { "cell_type": "markdown", "id": "ds-3", "metadata": {}, "source": "## Structs" }, { "cell_type": "code", "id": "ds-4", "metadata": {}, "execution_count": null, "outputs": [], "source": "p.name = 'ada';\np.year = 1815;\np.tags = {'math', 'cs'};\nfieldnames(p)\np.tags{1}" }, { "cell_type": "markdown", "id": "ds-5", "metadata": {}, "source": "## Struct arrays" }, { "cell_type": "code", "id": "ds-6", "metadata": {}, "execution_count": null, "outputs": [], "source": "people(1).name = 'A'; people(1).age = 30;\npeople(2).name = 'B'; people(2).age = 25;\nages = [people.age]\nnames = {people.name}" }, { "cell_type": "markdown", "id": "ds-7", "metadata": {}, "source": "## Key/value maps with containers.Map" }, { "cell_type": "code", "id": "ds-8", "metadata": {}, "execution_count": null, "outputs": [], "source": "prices = containers.Map({'apple', 'banana', 'cherry'}, {3, 5, 7});\nprices('banana')\nkeys(prices)" }, { "cell_type": "markdown", "id": "ds-9", "metadata": {}, "source": "## Formatting and parsing text" }, { "cell_type": "code", "id": "ds-10", "metadata": {}, "execution_count": null, "outputs": [], "source": "s = sprintf('%d items at $%.2f = $%.2f', 3, 1.50, 4.50)\nnum2str(pi, 8)\nstr2double('3.14')" }, { "cell_type": "markdown", "id": "ds-11", "metadata": {}, "source": "## String functions" }, { "cell_type": "code", "id": "ds-12", "metadata": {}, "execution_count": null, "outputs": [], "source": "strsplit('a,b,c', ',')\nstrjoin({'x', 'y', 'z'}, '-')\nupper('numbl')\nstrrep('banana', 'a', 'o')" }, { "cell_type": "markdown", "id": "ds-13", "metadata": {}, "source": "## String arrays and regular expressions" }, { "cell_type": "code", "id": "ds-14", "metadata": {}, "execution_count": null, "outputs": [], "source": "names = [\"Ada\" \"Alan\" \"Grace\"];\nnames(2)\ncontains(names, \"A\")\nregexp('id=42; val=7', '\\d+', 'match')" } ], "metadata": { "kernelspec": { "display_name": "numbl (MATLAB syntax)", "language": "numbl", "name": "numbl" }, "language_info": { "codemirror_mode": "octave", "file_extension": ".m", "mimetype": "text/x-octave", "name": "numbl", "nbconvert_exporter": "script", "pygments_lexer": "matlab" } }, "nbformat": 4, "nbformat_minor": 5 }