Horizontal concatenate in UItable table

조회 수: 2 (최근 30일)
chizom wornu
chizom wornu 2022년 1월 13일
댓글: chizom wornu 2022년 1월 15일
Hello, I have a code that uploads excel data into UItable. I want to concatenate the rows of the table however, some of the output are special charaters. Please how do i get it right. Below is my code and the results.
Table Data
Output Data
This is my code
oldData = get(GUI.RetailerStockList,'Data')
for i=1:size(oldData,1)
oldData(i)={horzcat(oldData{i,:})};
end
oldData(:,2:size(oldData,2))=[]

채택된 답변

Walter Roberson
Walter Roberson 2022년 1월 13일
oldData(i)={horzcat(oldData{i,:})};
Let us look at what that is being asked to do for i == 1:
oldData(1,:) = {'bacon rashers', 250, 'g', 738120, 'Use By', 0}
You horzcat() those, so you are asking for
['bacon rashers', 250, 'g', 738120, 'Use By', 0]
What is the rule when concatenating character vectors and numeric values?
TYPE | character | integer | single | double | logical
character | character | character | character | character | invalid
So when you [] together a character vector and a numeric value, the result is a character vector. This is not accomplished by formatting the number as text: this is accomplished by taking char() of the numeric value, looking up the underlying character codes as characters .
So the above line is equivalent to
['bacon rashers', char(250), 'g', char(738120), 'Use By', char(0)]
You should consider switching:
C = {"bacon rashers", 250, "g", 738120, "Use By", 0}
strjoin(string(C), ' ')
  댓글 수: 1
chizom wornu
chizom wornu 2022년 1월 15일
This really helped me solve the problem thank you.

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

추가 답변 (1개)

Voss
Voss 2022년 1월 14일
c = readcell('input.xlsx');
c(1,:) = [];
idx = ~cellfun(@ischar,c);
c(idx) = cellfun(@num2str,c(idx),'UniformOutput',false)
c = 22×6 cell array
{'bacon rashers' } {'250'} {'g' } {'738120'} {'Use By' } {'0' } {'black pepper' } {'20' } {'g' } {'738319'} {'Best Before' } {'10'} {'chicken breast'} {'200'} {'g' } {'738113'} {'Use By' } {'0' } {'chicken thigh' } {'150'} {''g'' } {'738114'} {''Use By'' } {'0' } {'egg' } {'12' } {''units''} {'738120'} {''Use By'' } {'0' } {'flour' } {'500'} {''g'' } {'738342'} {''Best Before''} {'3' } {''garlic'' } {'50' } {''g'' } {'738132'} {''Use By'' } {'0' } {''honey'' } {'200'} {''g'' } {'738369'} {''Best Before''} {'5' } {''ketchup'' } {'50' } {''g'' } {'738324'} {''Best Before''} {'5' } {''mayonnaise'' } {'80' } {''g'' } {'738142'} {''Best Before''} {'4' } {''milk'' } {'300'} {''ml'' } {'738231'} {''Best Before''} {'3' } {''mushroom'' } {'100'} {''g'' } {'738112'} {''Use By'' } {'0' } {''onion'' } {'250'} {''g'' } {'738116'} {''Best Before''} {'3' } {''parmesan'' } {'50' } {''g'' } {'738115'} {''Best Before''} {'6' } {''pasta'' } {'250'} {''g'' } {'738160'} {''Best Before''} {'3' } {''pork chop'' } {'300'} {''g'' } {'738115'} {''Use By'' } {'0' } {''potato'' } {'200'} {''g'' } {'738126'} {''Use By'' } {'0' } {''salmon'' } {'300'} {''g'' } {'738116'} {''Best Before''} {'4' } {''salt'' } {'100'} {''g'' } {'738669'} {''Best Before''} {'10'} {''shrimp'' } {'200'} {''g'' } {'738114'} {''Use By'' } {'0' } {''soy sauce'' } {'500'} {''ml'' } {'738627'} {''Best Before''} {'5' } {''tomato'' } {'40' } {''g'' } {'738118'} {''Use By'' } {'0' }
c_new = cell(size(c,1),1);
for i = 1:size(c,2)
c_new = strcat(c_new,c(:,i),{' '});
end
display(c_new);
c_new = 22×1 cell array
{'bacon rashers 250 g 738120 Use By 0 ' } {'black pepper 20 g 738319 Best Before 10 ' } {'chicken breast 200 g 738113 Use By 0 ' } {'chicken thigh 150 'g' 738114 'Use By' 0 ' } {'egg 12 'units' 738120 'Use By' 0 ' } {'flour 500 'g' 738342 'Best Before' 3 ' } {''garlic' 50 'g' 738132 'Use By' 0 ' } {''honey' 200 'g' 738369 'Best Before' 5 ' } {''ketchup' 50 'g' 738324 'Best Before' 5 ' } {''mayonnaise' 80 'g' 738142 'Best Before' 4 ' } {''milk' 300 'ml' 738231 'Best Before' 3 ' } {''mushroom' 100 'g' 738112 'Use By' 0 ' } {''onion' 250 'g' 738116 'Best Before' 3 ' } {''parmesan' 50 'g' 738115 'Best Before' 6 ' } {''pasta' 250 'g' 738160 'Best Before' 3 ' } {''pork chop' 300 'g' 738115 'Use By' 0 ' } {''potato' 200 'g' 738126 'Use By' 0 ' } {''salmon' 300 'g' 738116 'Best Before' 4 ' } {''salt' 100 'g' 738669 'Best Before' 10 ' } {''shrimp' 200 'g' 738114 'Use By' 0 ' } {''soy sauce' 500 'ml' 738627 'Best Before' 5 '} {''tomato' 40 'g' 738118 'Use By' 0 ' }

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by