اندیس ستون: راهنمای جامع جایگاه ستونی درایهها در ماتریس
ماتریس چیست و چرا به اندیس ستون نیاز داریم؟
ماتریس، جدولی مستطیلیشکل از اعداد، نمادها یا عبارتها است که در سطرها و ستونها چیده شدهاند. هر خانه از این جدول را یک «درایه» مینامیم. برای اشاره به یک درایه خاص، باید هم سطر آن را مشخص کنیم و هم ستونش را. شماره یا نامی که به ستونها نسبت داده میشود، همان اندیس ستون است. به عنوان مثال، در ماتریس $A_{3 \times 4}$ (سه سطر و چهار ستون) برای گفتن درایه سطر دوم و ستون سوم، از اندیس ستون برابر ۳ استفاده میکنیم. اندیس ستون به ما امکان میدهد بدون ابهام، مکان دقیق هر داده را مشخص کنیم.
$B = \begin{bmatrix} 5 & 8 & -2 \\ 3 & 0 & 7 \\ 1 & 4 & 6 \end{bmatrix}$
درایه $8$ در سطر اول و ستون دوم قرار دارد. بنابراین اندیس ستون آن ۲ است (اگر شمارش از یک شروع شود). درایه $7$ در سطر دوم، ستون سوم واقع شده که اندیس ستون آن ۳ میباشد.
روشهای شمارش ستونها: از صفر یا از یک؟
در ریاضیات مدرسهای، معمولاً اندیس سطرها و ستونها را از ۱ شروع میکنیم. اما در بسیاری از زبانهای برنامهنویسی (مانند پایتون، جاوا، سیپلاسپلاس)، اندیس آرایهها از ۰ آغاز میشود. این تفاوت در مفهوم اندیس ستون بسیار مهم است. اگر ماتریسی با $m$ سطر و $n$ ستون داشته باشیم، در حالت شمارش از یک، اندیس ستونها اعداد $1,2,\dots,n$ هستند. در حالت شمارش از صفر، اندیسها به صورت $0,1,\dots,n-1$ خواهند بود. برای نمونه، درایه سطر سوم و ستون دوم در شمارش از یک، اندیس ستون ۲ دارد، اما در شمارش از صفر، اندیس ستون آن ۱ خواهد بود.
| نوع شمارش | اولین ستون | دومین ستون | آخرین ستون |
|---|---|---|---|
| ریاضیات دبیرستان (از یک) | ۱ | ۲ | $n$ |
| برنامهنویسی (از صفر) | ۰ | ۱ | $n-1$ |
چگونه اندیس ستون یک درایه را پیدا کنیم؟
فرض کنید ماتریس $M$ با اندازه $m \times n$ داریم. درایهای که در سطر $i$ و ستون $j$ قرار دارد را با نماد $a_{ij}$ نمایش میدهند. در این نماد، $i$ همان اندیس سطر و $j$ اندیس ستون است. اگر ماتریس به صورت یک آرایه تخت (یکبعدی) در حافظه ذخیره شده باشد (روش ذخیرهسازی سطری یا ستونی)، میتوان از فرمول زیر برای یافتن اندیس ستون استفاده کرد. در روش ذخیرهسازی به ترتیب سطرها (Row-major) که در زبان سی متداول است، اندیس ستون به سادگی برابر با باقیمانده تقسیم موقعیت در آرایه تخت بر تعداد ستونها خواهد بود (در صورت شمارش از صفر).
مثال: فرض کنید ماتریس $3 \times 4$ داریم. اگر درایه مورد نظر در آرایه تخت اندیس $k=7$ داشته باشد (از صفر)، آنگاه اندیس ستون آن برابر $7 \mod 4 = 3$ خواهد بود. یعنی این درایه در ستون چهارم قرار دارد (چون شمارش از صفر: ستونهای $0,1,2,3$).
کاربرد عملی: جستجوی سریع در جدول دادهها
فرض کنید جدولی از نمرات دانشآموزان در سه درس ریاضی، علوم و زبان داریم. سطرها نشاندهنده دانشآموزان و ستونها نشاندهنده درسها هستند. اندیس ستون به ما میگوید هر ستون مربوط به کدام درس است. برای یافتن نمره علوم دانشآموز سوم، کافی است سطر سوم و ستون دوم (اگر ستون اول ریاضی، دوم علوم، سوم زبان باشد) را مشخص کنیم. در پردازش تصویر، هر تصویر به صورت یک ماتریس از پیکسلها ذخیره میشود. اندیس ستون، موقعیت افقی هر پیکسل را تعیین میکند. برای تغییر رنگ یک نوار عمودی در تصویر، باید اندیس ستونهای مربوط به آن نوار را تغییر دهیم. در صفحهگسترده مانند اکسل، هر خانه با ترکیب حرف ستون (که معادل اندیس ستون است) و شماره سطر مشخص میشود. برای مثال، خانه C5 یعنی ستون سوم (C) و سطر پنجم.
چالشهای مفهومی درباره اندیس ستون
پاسخ: خیر. اندیس ستون همیشه یک عدد صحیح و نامنفی (صفر یا بزرگتر) است. در ریاضیات پایه از اعداد طبیعی $1,2,3,\dots$ استفاده میشود و در علوم رایانه از $0,1,2,\dots$. اندیس منفی یا اعشاری معنی فیزیکی در جایگاه ستون ندارد.
پاسخ: چنین ماتریسی را بردار ستونی مینامیم. در این حالت تنها یک ستون وجود دارد. در شمارش از یک، اندیس ستون همیشه ۱ است و در شمارش از صفر، اندیس ستون برابر ۰ خواهد بود. برای همه درایهها اندیس ستون یکسان است.
پاسخ: جابجایی (ترانهاده) ماتریس، سطرها را با ستونها عوض میکند. اگر ماتریس اولیه $A$ با اندیس ستون $j$ داشته باشیم، در ماتریس جابجا شده $A^T$، همان درایه در سطر $j$ و ستون $i$ قرار میگیرد. یعنی اندیس ستون قبلی به اندیس سطر جدید تبدیل میشود. بنابراین درک درست اندیس ستون برای عملیات جابجایی ضروری است.
جمعبندی
پاورقی
1 درایه (Entry): هر یک از اعضای یک ماتریس که در محل تقاطع یک سطر و یک ستون قرار دارد.2 اندیس (Index): عددی که موقعیت یک عنصر را در یک آرایه یا ماتریس مشخص میکند.
3 ذخیرهسازی سطری (Row-major order): روشی برای ذخیره ماتریس در حافظه که در آن عناصر هر سطر پشت سر هم قرار میگیرند.
4 بردار ستونی (Column vector): ماتریسی با ابعاد $m \times 1$ که فقط یک ستون دارد.
5 جابجایی یا ترانهاده (Transpose): عمل تعویض سطرها و ستونهای یک ماتریس که با نماد $A^T$ نشان داده میشود.