1. 程式人生 > >matlab中cell的用法

matlab中cell的用法

spp-net中的spp_demo中的程式碼詳讀:

dets = spp_detect(im, spp_model, spm_im_size, use_gpu);

classes = spp_model.classes;
boxes = cell(length(classes), 1);
thres = -0.5;
for i = 1:length(boxes)
    I = dets{i}(:, 5) >= thres;
    boxes{i} = dets{i}(I, :);
end
showboxes_new(im, boxes, classes);

看不明白其中cell的用法,用下面的資料嘗試了一下:

>> a=cell(8)

初始化為一個8行8列的空cell型別資料

a = 


    []    []    []    []    []    []    []    []
    []    []    []    []    []    []    []    []
    []    []    []    []    []    []    []    []
    []    []    []    []    []    []    []    []
    []    []    []    []    []    []    []    []
    []    []    []    []    []    []    []    []
    []    []    []    []    []    []    []    []
    []    []    []    []    []    []    []    []


>> a{1}=rand(6)
a的1行1列的單元中儲存的就是一個隨機的6×6的方陣


a = 


    [6x6 double]    []    []    []    []    []    []    []
              []    []    []    []    []    []    []    []
              []    []    []    []    []    []    []    []
              []    []    []    []    []    []    []    []
              []    []    []    []    []    []    []    []
              []    []    []    []    []    []    []    []
              []    []    []    []    []    []    []    []
              []    []    []    []    []    []    []    []


>> a{1}
檢視a的1行1列的單元值


ans =


    0.7577    0.0318    0.3171    0.7952    0.7547    0.4984
    0.7431    0.2769    0.9502    0.1869    0.2760    0.9597
    0.3922    0.0462    0.0344    0.4898    0.6797    0.3404
    0.6555    0.0971    0.4387    0.4456    0.6551    0.5853
    0.1712    0.8235    0.3816    0.6463    0.1626    0.2238
    0.7060    0.6948    0.7655    0.7094    0.1190    0.7513


>>  I = a{1}(:, 5) >= 0.5;
>> I
將a{1}中的第五列值大於等於0.5標記為1,否則標記為0,賦給變數I,I為一個6*1的向量

I =


     1
     0
     1
     1
     0
     0


>>  boxes{1} = a{1}(I, :)
將I中為1的那一行向量給boxes{1},I中有三個1,所以就是3*6

boxes = 


    [3x6 double]


>> boxes{1}


ans =


    0.7577    0.0318    0.3171    0.7952    0.7547    0.4984
    0.3922    0.0462    0.0344    0.4898    0.6797    0.3404
    0.6555    0.0971    0.4387    0.4456    0.6551    0.5853


>> 

相關推薦

matlabcell用法

spp-net中的spp_demo中的程式碼詳讀: dets = spp_detect(im, spp_model, spm_im_size, use_gpu); classes = spp_model.classes; boxes = cell(length(class

Matlabdiff用法

diff函式式用於求導數和差分的. 無論是求導數還是差分,其原理是一樣的.     這裡簡單介紹下其用法: 前後相鄰元素之差     上下相鄰行之差.     與diff(A,1

**matlab std 用法**

1、std函式 : 標準差。 2、使用方法: (1)S = std(A) 返回 A 沿大小不等於 1 的第一個陣列維度的元素的標準差。 如果 A 是觀測值的向量,則標準差為標量。 如果 A 是一個列為隨機變數且行為觀測值的矩陣,則 S 是一個包含與每列對應的標準差

**matlab median 用法**

1、函式功能: 陣列的中位數值。 2、使用方法: (1)M = median(A) 返回 A 的中位數值。 如果 A 為向量,則 median(A) 返回 A 的中位數值。 如果 A 為非空矩陣,則 median(A) 將 A 的各列視為向量,並返回中位數值的行向

**matlabfileparts用法**

1、fileparts: 獲取檔名的組成部分。 2、用法說明: [filepath,name,ext] = fileparts(filename) 返回指定檔案的路徑名稱、檔名和副檔名。 fileparts 僅解析指定的 filename。不會驗證檔案是否存在。

**matlabwhich用法**

1、which: 定位函式和檔案。 2、用法說明: (1)which item: 顯示 item 的完整路徑。 如果 item 是 MATLAB® 程式碼檔案(.m、.mlx 或 .p 副檔名)中的一個 MATLAB 函式,或者是儲存的 Simulink® 模型(.slx

Matlabcell與其它型別之間的轉換

1 數字->cell num = 123; num_cell = num2cell(num); 2 cell->char[1] cell_str = {'hello'}; char_str

matlabaxes用法

%建立axes座標圖 h = axes(); %定義圖形位置和大小,[left bottom width height] %set(h,'Position',[0.1 0.1 0.8 0.8]); %畫圖 x=0:0.01:12; y=sin(x); plot(h,sin(

向量與矩陣的範數及其在matlab用法(norm)

一、常數向量範數 L0範數 ∥x∥0=def‖x‖0=def向量中非零元素的個數 其在matlab中的用法: sum( x(:) ~= 0 ) L1範數 ∥x∥1=def∑i=1m|xi|=|x1|+⋯+|xm|‖x‖1=def∑i=1m|xi|=|x1|

Matlabones()用法

 ONES   Ones array.     ONES(N) is an N-by-N matrix of ones.       ONES(M,N) or ONES([M,N]) is an M-by-N matrix of ones.       ONES(M,N,P,...) or ONES([M N

Matlabcell陣列的使用

C = num2cell(A, [dim1, dim2, ...]) 返回C的維數是numel(A)/prod(X,Y,...)   dimN 是一個整數,範圍是1到ndims(A)  只有數值矩陣才可以直接轉換為cell,沒有供cell轉為double的方法.這是非常讓人惱火的!不過理解之後就知道,cell

matlabcell陣列的全面介紹

本文轉載自:http://blog.sina.com.cn/s/blog_8259d70901017wit.html從cell使用說起在讀取檔案的時候,cell陣列(各種翻譯都有,元胞陣列,單元陣列...直接無視)是Matlab的寵兒,基本都會出現,長期使用發現頻率比stru

MATLABcell函式

如果p為一個數,那麼h(1)=p,是沒有問題的。 如果p為一個向量,那麼h(1,:)=p是沒有問題的。 如果p是一個矩陣的話,上面的兩種賦值方法都是會有錯誤的。 那麼要如何處理呢? 這時就用到了cell資料型別了。cell的每個單元都可以儲存任何資料,比如傳遞函

roifilt2 在MATLAB用法

roifilt2 Filter region of interest (ROI) in image collapse all in pageSyntax J = roifilt2(h, I, BW)J = roifilt2(I, BW, fun) Description J

matlabcell array, cellstr()和char()的用法

Cell Array的定義:顧名思義,Cell Array是由Cell構成的Array。Cell可以包含各種資料型別。可以使用()取cell array的子集,使用{}取cell array指定位置的

matlabsize函數用法

matlab 元素 size(A)函數是用來求矩陣的大小的。比如說一個A是一個3×4的二維矩陣:1、size(A) %直接顯示出A大小輸出:ans=3 42、s=size(A)%返回一個行向量s,s的第一個元素是矩陣的行數,第二個元素是矩陣的列數輸出:s=3 43、[r,c]=size(A)%將矩陣A

Matlabfopen,fscanf的用法總結

fopen - Open file, or obtain information about open files     This MATLAB function opens the file, filename, for binary read access, and &

matlab repmat的用法

在matlab中repmat的用法有以下幾種: repmat (A, m) repmat (A, m, n) repmat (A, m, n, p …) repmat (A, [m n]) repmat (A, [m n p …]) 上述的用法的基本功能是形成mXn的塊矩陣,

MATLABtry...catch...end的用法

matlab的程式碼是按行執行的,如果碰到錯誤行,則程式中斷,try...catch...end可使可能出錯的程式碼不影響後面程式碼的繼續執行,也可以檢查,排查,解決程式的一些錯誤,增強程式碼的魯棒性和可靠。 1、try...end try...end用於嘗試執行一

matlab的mvnrnd函式用法

使用matlab來實現: clear all;close all; clc; % 第一組資料 mul=[0,0]; % 均值 S1=[.1 0;0 .1]; % 協方差 data1=mvnrnd(mul, S1, 100); % 產生高斯分佈資料 % 第二組資料 mu2=[1.25 1.25