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


رتبه موضوع:
  • 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 کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


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