کدهای متلب
متلب یک نرم افزار ریاضی و مهندسی می باشد که در سال های اخیر در کاربردهای علمی زیادی استفاده می شود.
در این نوشته تعدادی از موارد پر کاربرد نرم افزار متلب را برای شما به اشتراک خواهم گذاشت.
کدهای متلب
نوشتن ماتریس در فایل txt با متلب
از کد زیر در نرم افزار متلب استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 | function SaveMatrix(data, name) fid = fopen(name, 'w'); [n_row, n_column] = size(data); magic = uint8('YANGVOCO'); fwrite(fid, magic, 'uint8'); fwrite(fid, n_column, 'int32'); fwrite(fid, n_row, 'int32'); for ii = 1:n_column fwrite(fid, data(:, ii), 'float32'); end; fclose(fid); end |
ساخت تصویر برفکی در متلب
از کد زیر در نرم افزار متلب استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | clc; clear all; numbers = [0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 255]; numbersSize = size(numbers); x = 1000; y = 1000; imageResult = zeros(x, y); for i = 1 : x for j = 1 : y tempIndex = (numbersSize - 2).* rand(1) + 1; imageResult(i, j) = numbers( round(tempIndex(2)) ); if(imageResult(i, j) > 255) imageResult(i, j) = 255; end end end image = uint8(imageResult); figure, imshow(image); |
خواندن ماتریس از فایل txt در متلب
از کد زیر در نرم افزار متلب استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function data = ReadMatrix(name) data = []; fid = fopen(name); if fid == -1 disp(['File cannot be opened: ' name]); return; end; magic_word = uint8(fread(fid,8,'uint8')); magic = uint8('YANGVOCO'); if sum(abs(magic_word(:) - magic(:))) ~= 0 disp(['File format is wrong, magic: ' char(magic_word)]); return; end; n_column = double(fread(fid,1,'int32')); n_row = double(fread(fid,1,'int32')); data = zeros(n_row, n_column); for ii = 1:n_column tmp = double(fread(fid,n_row,'float32')); data(:, ii) = tmp(:); end; fclose(fid); end |
تبدیل عدد به رشته در متلب
از کد زیر در نرم افزار متلب استفاده کنید:
1 2 3 | >> num2str(22) >> str2num('213') |
فاصله اقلیدسی در متلب
از کد زیر در نرم افزار متلب استفاده کنید:
1 2 3 | function distance = euclideanDistance(x1, y1, x2, y2) distance = sqrt( ((x1 - y1) ^ 2) + ((x2 - y2) ^ 2) ); end |
فاصله منهتن در متلب
از کد زیر در نرم افزار متلب استفاده کنید:
1 2 3 | function distance = manhattanDistance(x1, y1, x2, y2) distance = abs((x1 - y1)) + abs((x2 - y2)); end |
تابع تبدیل تصاویر رنگی با فرمت RGB به فرمت GRAYSCALE
از کد زیر در نرم افزار متلب استفاده کنید:
- روش اول:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function grayImage = rgb2grayscale1(X) indexNum = size(X); grayImage = im2uint8(zeros(indexNum(1), indexNum(2))); temp = 0; for i = 1:indexNum(1) for j=1:indexNum(2) temp = int32(X(i, j, 1)) * .299 + int32(X(i, j, 2)) * .587 + int32(X(i, j, 3)) * .144; if(temp < 0) temp = 0; elseif(temp > 255) temp = 255; end grayImage(i,j) = int8(temp); end end end |
- روش دوم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function grayImage = rgb2grayscale2(X) indexNum = size(X); grayImage = im2uint8(zeros(indexNum(1), indexNum(2))); temp = 0; for i = 1:indexNum(1) for j=1:indexNum(2) temp = int32(X(i, j, 1)) + int32(X(i, j, 2)) + int32(X(i, j, 3)); if(temp < 0) temp = 0; elseif(temp > 255) temp = 255; end grayImage(i,j) = int8(round(temp / 3)); end end end |
- روش سوم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function grayImage = rgb2grayscale3(X) indexNum = size(X); grayImage = im2uint8(zeros(indexNum(1), indexNum(2))); temp = 0; for i = 1:indexNum(1) for j=1:indexNum(2) temp = int32(X(i, j, 1)) + int32(X(i, j, 2)) + int32(X(i, j, 3)); if(temp < 0) temp = 0; elseif(temp > 255) temp = 255; end grayImage(i,j) = int8(round(temp * .33)); end end end |
تبدیل عکس به NEGATIVE با متلب
از کد زیر در نرم افزار متلب استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | % Powered By CamelCase.ir clc; close all; clear all; img1 = imread('img.png'); img2 = img1; for i = 1 : 500 for j = 1 : 500 img2(i,j) = 255 - img1(i, j); end end figure, imshow(img1); figure, imshow(img2); % Powered By CamelCase.ir |
کد رسم صفحه ی شطرنج با متلب
از کد زیر در نرم افزار متلب استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | close all clear clc axis([1 13 1 13]); a=1 for i=3:1:10 for j=3:1:10 if isequal(a,0) rectangle('Position',[j i 1 1], 'FaceColor',[.800 .800 .800]) a=1; else rectangle('Position',[j i 1 1], 'FaceColor',[0 0 0]) a=0; end end if isequal(a,0) a=1; else a=0; end end |
اگر در مورد هر یک از کدهای بالا مشکلی دارید در بخش نظرات همین نوشته بنویسید.
این نوشته به مرور تکمیل می شود.