/ concept-collection / jupyterlite-numbl-kernel
Sign in
concept-collection / jupyterlite-numbl-kernel
jupyterlite-numbl-kernel / demo / content / advanced / 05-data-structures-and-strings.ipynb
125 lines · 2.9 KBCodeBlameHistory
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "id": "ds-0",
6 "metadata": {},
7 "source": "# Data structures and strings\n\nCell arrays, structs, dictionaries, and text handling."
8 },
9 {
10 "cell_type": "markdown",
11 "id": "ds-1",
12 "metadata": {},
13 "source": "## Cell arrays hold mixed types"
14 },
15 {
16 "cell_type": "code",
17 "id": "ds-2",
18 "metadata": {},
19 "execution_count": null,
20 "outputs": [],
21 "source": "c = {42, 'hello', [1 2 3]};\nc{2}\nclass(c{3})\nnumel(c)"
22 },
23 {
24 "cell_type": "markdown",
25 "id": "ds-3",
26 "metadata": {},
27 "source": "## Structs"
28 },
29 {
30 "cell_type": "code",
31 "id": "ds-4",
32 "metadata": {},
33 "execution_count": null,
34 "outputs": [],
35 "source": "p.name = 'ada';\np.year = 1815;\np.tags = {'math', 'cs'};\nfieldnames(p)\np.tags{1}"
36 },
37 {
38 "cell_type": "markdown",
39 "id": "ds-5",
40 "metadata": {},
41 "source": "## Struct arrays"
42 },
43 {
44 "cell_type": "code",
45 "id": "ds-6",
46 "metadata": {},
47 "execution_count": null,
48 "outputs": [],
49 "source": "people(1).name = 'A'; people(1).age = 30;\npeople(2).name = 'B'; people(2).age = 25;\nages = [people.age]\nnames = {people.name}"
50 },
51 {
52 "cell_type": "markdown",
53 "id": "ds-7",
54 "metadata": {},
55 "source": "## Key/value maps with containers.Map"
56 },
57 {
58 "cell_type": "code",
59 "id": "ds-8",
60 "metadata": {},
61 "execution_count": null,
62 "outputs": [],
63 "source": "prices = containers.Map({'apple', 'banana', 'cherry'}, {3, 5, 7});\nprices('banana')\nkeys(prices)"
64 },
65 {
66 "cell_type": "markdown",
67 "id": "ds-9",
68 "metadata": {},
69 "source": "## Formatting and parsing text"
70 },
71 {
72 "cell_type": "code",
73 "id": "ds-10",
74 "metadata": {},
75 "execution_count": null,
76 "outputs": [],
77 "source": "s = sprintf('%d items at $%.2f = $%.2f', 3, 1.50, 4.50)\nnum2str(pi, 8)\nstr2double('3.14')"
78 },
79 {
80 "cell_type": "markdown",
81 "id": "ds-11",
82 "metadata": {},
83 "source": "## String functions"
84 },
85 {
86 "cell_type": "code",
87 "id": "ds-12",
88 "metadata": {},
89 "execution_count": null,
90 "outputs": [],
91 "source": "strsplit('a,b,c', ',')\nstrjoin({'x', 'y', 'z'}, '-')\nupper('numbl')\nstrrep('banana', 'a', 'o')"
92 },
93 {
94 "cell_type": "markdown",
95 "id": "ds-13",
96 "metadata": {},
97 "source": "## String arrays and regular expressions"
98 },
99 {
100 "cell_type": "code",
101 "id": "ds-14",
102 "metadata": {},
103 "execution_count": null,
104 "outputs": [],
105 "source": "names = [\"Ada\" \"Alan\" \"Grace\"];\nnames(2)\ncontains(names, \"A\")\nregexp('id=42; val=7', '\\d+', 'match')"
106 }
107 ],
108 "metadata": {
109 "kernelspec": {
110 "display_name": "numbl (MATLAB syntax)",
111 "language": "numbl",
112 "name": "numbl"
113 },
114 "language_info": {
115 "codemirror_mode": "octave",
116 "file_extension": ".m",
117 "mimetype": "text/x-octave",
118 "name": "numbl",
119 "nbconvert_exporter": "script",
120 "pygments_lexer": "matlab"
121 }
122 },
123 "nbformat": 4,
124 "nbformat_minor": 5
moveopenescclose