我有一个image_data单元格数组包含400个图像:
image_data = {img1,img2,… img400}每个图像,如img1,是一个128 x 128像素值数组:
img1 = [0.2,0.5,…..]我想得到……
第一步是通过连接第三维图像将该笨重的单元阵列转换为三维数组:
image_array = cat(3, image_data{:});
现在,我们所要做的就是使用下标来获取向量 第i个 将每个图像中的像素转换为矢量并将其传递给 var :
var
pixel_var = var(image_array(1,1,:)); % var for pixel 1
或者只是一次完成整个图像并索引到结果中:
image_var = var(image_array, 0, 3); % take var along 3rd dimension
只是为了添加@beaker的解决方案。
img1 = [0.1, 0.2, 0.3]; img2 = [0.4, 0.5, 0.6]; img3 = [0.7, 0.8, 0.9]; image_data = {img1, img2, img3}; image_array = cat(1, image_data{:}) % concatinate the cell array to 2-d array pix_array = var(image_array,0,1) % apply var() to all columns
我懂了:
image_array = 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 pix_array = 0.0900 0.0900 0.0900