I want to concatenate two coloumns of table.
13 次查看(过去 30 天)
显示 更早的评论
Two coloumns of my table are as follows:
Freqa Freqb
950 1500
2000 2070
3000 3070
4000 4070
And I want to provide this as an input to my function of different module which need input freq as
freq
950
1500
2000
2070
3000
3070
4000
4070
And using this command c= [freqa(:,1); freqb(:,2)]. MATLAB shows me this error: All tables being vertically concatenated must have the same variable names. I cant chnage the variable of my excel sheet so how to perform this concatenation operation please let me know.
0 个评论
采纳的回答
Jon
2022-6-9
I am assuming you have a single MATLAB table, let's call it T, with two columns, one called freqa and another freqb.
In this case, you can do what you want using:
freq = [T.freqa;T.freqb]
更多回答(1 个)
Voss
2022-6-10
编辑:Voss
2022-6-10
Let's say you have a table t with variables freqa and freqb.
freqa = [950; 2000; 3000; 4000];
freqb = [1500; 2070; 3070; 4070];
t = table(freqa,freqb);
Then freq given below is a column vector of all elements of freqa and freqb in the required order:
% one way:
freq = reshape([t.freqa t.freqb].',[],1)
% another way:
freq = reshape(t{:,{'freqa' 'freqb'}}.',[],1)
Or, let's say you have two tables freqa and freqb
freqa = table([950; 2000; 3000; 4000],[1500; 2070; 3070; 4070]);
freqb = table([950; 2000; 3000; 4000],[1500; 2070; 3070; 4070]);
(so that I can reproduce the error you got using the code you showed)
try
c= [freqa(:,1); freqb(:,2)]
catch ME
disp(ME.message);
end
If that's the situation, then you can construct freq (or c if you want to call it that) like this:
freq = reshape([freqa{:,1} freqb{:,2}].',[],1)
In either case, you can make the result freq into a table by
freq = table(freq)
if that's what the input of the function needs to be.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!