1. 程式人生 > >【matlab程式碼練習19】積累的小程式碼

【matlab程式碼練習19】積累的小程式碼

1. 隨意輸入10個1-10之間的數字,返回數值在2-6之間(不包括2和6)的數字的位置

clear; clc; 
A = uint8(10*rand(1, 10))
B = (A>2) & (A<6)
weizhi = find(B == 1)

2. 字串倒置

S = 'Every good boy does fun';
m = size(S,2); % 列數,即字元的個數
result = S(m:-1:1)

3. 將矩陣A中的實數和複數分開為一個具有實數和複數的矩陣

clear; 
clc; 

% 任意輸入一個矩陣,包含實數和複數
A = [2, 6.5, 2i, 0.5, 3+4i]; 

% 定義儲存實數和複數的矩陣為空矩陣
real_array = []; 
complex_array = []; 

% 檢測
for i = 1:length(A)
   if isreal(A(i))
       real_array = [real_array A(i)];
   else
       complex_array = [complex_array A(i)]; 
   end
end

4. 如果讀入的影象是RGB影象,則轉換為灰度影象,否則不做轉換

    if ndims(srcImage) == 3
        im_original = rgb2gray(srcImage); 
    else
        im_original = srcImage; 
    end

5. 計算除去空行和註釋行之外的程式碼行數

clear; 
clc; 

fid = fopen('ex.m', 'r');
count = 0; 
while ~feof(fid) 
    line = fgetl(fid); 
    if isempty(line) || strncmp(line, '%', 1)
        continue; 
    end
    count = count + 1; 
end
fprintf('%d lines\n', count); 

6. 如何判斷輸入的x是不是一個向量(這裡不認為標量是向量)

[a, b] = size(x); 

if ~( (a==1) | (b==1) ) | ( (a==1) & (b==1) )
    error('必須輸入向量。')
end