انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ماتریس2

ماتریس2

#1
با سلام
یه سوال داشتم از خدمتتون! آیا مثل دستور cell که یه آرایه رو میسازه برای ساخت ماتریس دستوری وجود داره که شماره سطر و ستون ها و مقدار درایه ها داده بشه و ماتریس ساخته شه؟ Huh
پاسخ

ماتریس2

#2
سلام.
خیلی خوب منظورتون رو متوجه نشدم.
دستور cell ، آرایه های چند بعدی نیز می تواند بسازد (به help متلب برای دستور cell مراجعه کنید)، گفتم شاید ساخت آرایه دو بعدی منظورتان بوده است.

اما اگر مورد قبل ، منظورتون نبوده، شاید این به دردتون بخوره :

برای ماتریس، دستوراتی مثل ones و zeros وجود دارد که هر کدام، تعداد سطر و ستون ماتریس را دریافت کرده و سپس به جای درایه های (عناصر) آن، مقدار 0 (برای دستور zeros) یا مقدار 1 (برای دستور ones) قرار می دهند.

باز هم اگر به پاسخ نرسیده اید، کاملتر توضیح بدید تا راهنماییتون کنم.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

ماتریس2

#3
از این که نتونستم منظورمو واضح بیان کنم خیلی عذر میخوام.
من با کدهای زیر یه cell ساختم
کد:
close all;
clear all;
clc
A= randi([10,80],1,20);
for i=1:20
     X=A(i);
     F=[];
    for j=1:X/2
         F(j)= mod(X,j);
     end

all_OF=find(F==0);
OF{i}=[all_OF,X];
end
حالا میخوام یه ماتریس بسازم به این شکل که اولین و اخرین عدد درایه اول سلول OF شماره سطر و ستون ماتریسو مشخص کنه و بعد اولین عدد رشته A در اون مکان قرار بگیره. بعد دومین عدد و عدد یکی به اخر مونده دوباره مشخص کننده یک سطر و ستون باشند و باز اولین عدد رشته A اونجا قرار بگیره .این کار جلو بره تا اعداد اولین قسمت در OF تموم بشه و بعد برنامه به همین شکل برای قسمت های بعدی OFتکرار بشه تا آخرین عدد رشته A هم در ماتریس قرار بگیره و بقیه درایه های ماتریس صفر باشه.
پاسخ

ماتریس2

#4
دستوری که در متلب، این کار (روندی که شما گفتید) رو انجام بده، وجود نداره (منظورم اینه که حداقل تا حالا من چنین دستوری ندیدم) و این موردی که شما گفته اید، نیاز به کدنویسی خودتان دارد (ساخت ماتریس و بعد قرار دادن مقادیر در آن).
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

ماتریس2

#5
خیلی از راهنماییتون سپاسگزارم
پاسخ
 سپاس شده توسط admin

ماتریس2

#6
ببخشید یه سوال دیگه داشتم! خیلی ممنون میشم کمکم کنید!
قبل از ساختن ماتریس اگه بخوام کاری کنم که به همون شکلی که توضیح دادم شماره سطر و ستونها هر کدوم به شکل یه بردار نمایش داده بشه چیکار باید بکنم؟
این کد به ذهنم رسید که جواب نمیده.
کد:
for i=1:20
    j=1:numel(OF{i});
    k=numel(OF{i}):1;
    
S(i,j,k)=[OF{i}(j),OF{i}(k)];

end
اگر ممکنه راهنماییم کنید.
پاسخ

ماتریس2

#7
با دستور زیر می توانید تمام بردارها را ببینید :

کد:
celldisp(OF)

نتیجه :

کد:
OF{1} =

     1    67



OF{2} =

     1     2    37    74



OF{3} =

     1    19



OF{4} =

     1     2    37    74



OF{5} =

     1     2     3     6     9    18    27    54



OF{6} =

     1     2     4     8    16



OF{7} =

     1    29



OF{8} =

     1     2     3     4     6     8    12    16    24    48



OF{9} =

     1     7    11    77



OF{10} =

     1     2     3     6    13    26    39    78



OF{11} =

     1     3     7    21



OF{12} =

     1     2     3     6    13    26    39    78



OF{13} =

     1     7    11    77



OF{14} =

     1     2     4    11    22    44



OF{15} =

     1     2     3     6    11    22    33    66



OF{16} =

     1     2     4     5    10    20



OF{17} =

     1     3    13    39



OF{18} =

     1     3     5    15    25    75



OF{19} =

     1     2     3     6    11    22    33    66



OF{20} =

     1     2     3     6    13    26    39    78

برای دسترسی به یک مقدار، از یک بردار، مثل کد زیر عمل می کنیم (مقدار سوم از بردار شماره 2) :

کد:
OF{2}(3)

نتیجه :

کد:
ans =

    37

حالا برای دیدن تمامی مقادیر بردار شماره 2 ، این کدها را می نویسیم :

کد:
OF{2}(1:end)

نتیجه :

کد:
ans =

     1     2    37    74
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان