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



حذف سطرهای خالی ماتریس (متلب - MATLAB)زمان کنونی: ۱۳۹۵/۰۹/۲۱، ۰۲:۲۱ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: Infinity
آخرین ارسال: admin
پاسخ 2
بازدید 647

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
حذف سطرهای خالی ماتریس (متلب - MATLAB)

حذف سطرهای خالی ماتریس (متلب - MATLAB)

#1
سلام

من 105 ماتریس دو ستونی دارم که بعضی از سلول های این ماتریس ها خالی هستن و من میخوام کل سطر حاوی حداقل یه سلول خالی رو حذف کنم. برای این کار از این کد استفاده میکنم ولی این error رو  میده: A null assignment can have only one non-colon index.

کد:
indx=[];
for j=1:size(R,1)
for i=1:105
    if any((R(j,:,i)==0))
        indx(end+1,1)=j;
    end
end
R(indx,:,i)=[]
end

ممنون میشم راهنمایی کنید که چطور میشه این مشکل و برطرف کرد.
پاسخ

حذف سطرهای خالی ماتریس (متلب - MATLAB)

#2
سلام.
وقتی شما یک ردیف (سطر) از ماتریس را حذف می کنید، تعداد ردیف های آن یکی کم شده، اما حلقه for را به گونه ای تعریف کرده اید که بر اساس تعداد ردیف اولیه ماتریس عمل می کند. یعنی مثلا اگر ماتریس در ابتدا 5 ردیف داشته باشد، فرض کنیم شما ردیف شماره 3 را حذف کنید، وقتی حلقه به مقدار برابر 5 برای ردیف می رسد، هنگام فراخوانی مشاهده می کند که ماتریس دارای ردیف شماره 5 نیست.
بنابراین برای رفع این مشکل، یک متغیر با مقدار اولیه 0 تعریف کنید. بعد با حذف هر ردیف، آن را یکی افزایش بدهید. بعد هنگام فراخوانی ردیف ها از ماتریس، باید این عدد را از اندیس (شماره) مربوط به فراخوانی ردیف ها کم کنید (بنابراین ردیف ها بر اساس شماره جدید خود فراخوانی می شوند).

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


پرش به انجمن:


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

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)