Hi folks,
I am trying to write some fata into an array, which I will then write to excel. I get the VERTCAT error when trying to create the array (Error using vertcat Dimensions of arrays being concatenated are not consistent).
Can you help identify why this is please?
Each column of data should be 256 elements long.
My code is as follows:
headings = {'Pixel Value', 'R', 'G', 'B', 'Grey'};
pixelValue = (0:255)';
allCoke_R = imhist(allCokeMask(:,:,1));
allCoke_G = imhist(allCokeMask(:,:,2));
allCoke_B = imhist(allCokeMask(:,:,3));
allCokeGrey = imhist(rgb2gray(allCokeMask));
dataCollectionAllCoke = zeros(257, 5);
dataCollectionAllCoke = [headings; pixelValue, allCoke_R, allCoke_G, allCoke_B, allCokeGrey];
writecell(dataCollectionAllCoke, resultsPath, 'Sheet', nameStringExcel, "Range", 'A1');

 채택된 답변

Jonas
Jonas 2021년 7월 3일

1 개 추천

try putting {} around the second line of concatenation
dataCollectionAllCoke = [headings; {pixelValue, allCoke_R, allCoke_G, allCoke_B, allCokeGrey}];
or convert all variable entries to cells
dataCollectionAllCoke = [headings;num2cell([pixelValue, allCoke_R, allCoke_G, allCoke_B, allCokeGrey])];
both should work concerning the concatenation, but i am not sure about the needed format for the writematrix() command

댓글 수: 4

Hi, thanks for this! It seems to have gotten rid of the error. However, I am now getting the following output in the excel file, instead of 5 columns of 256 numbers each!
Any ideas on how to fix this please/
Jonas
Jonas 2021년 7월 4일
did you use the second solution? or the first one? i think the second is more appropriate as input for writecell()
if you already used the second solution, can you provide the variable allCokeMask ?
i tested the code myself now, it works as expected. of course i don't know what you spcified in the further parameters of the writecell() call
headings = {'Pixel Value', 'R', 'G', 'B', 'Grey'};
pixelValue = (0:255)';
allCokeMask=randi(255,100,100,3);
allCoke_R = imhist(allCokeMask(:,:,1));
allCoke_G = imhist(allCokeMask(:,:,2));
allCoke_B = imhist(allCokeMask(:,:,3));
allCokeGrey = imhist(rgb2gray(allCokeMask));
dataCollectionAllCoke = [headings; num2cell([pixelValue, allCoke_R, allCoke_G, allCoke_B, allCokeGrey])];
writecell(dataCollectionAllCoke, 'test.xls');
@Jonas this works, thank you!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2021년 7월 3일

댓글:

2021년 7월 7일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by