Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.
|
|
Alex
Posts:
16
Registered:
2/11/11
|
|
Re: cell array dimensions do not match
Posted:
Dec 12, 2012 8:34 PM
|
|
Thanks, but that didnt quite work either. With those changes I got the error ??? Error using ==> rmfield at 21 FIELDNAMES must be a string or a cell array of strings.
Error in ==> remover at 33 deltaT = rmfield(data, toremove)
I resolved it by modifying my code to remove the entires in the same for loop that combined the field numbers with the field name instead of trying to make a list.
if rmvr == 1 for g = listremove field = [stem,int2str(g)] % combining field numbers that contain no data with the stem they are named. data = rmfield(data, field) % removing the fields from data as their field names are made end end deltaT = data; save(File, 'deltaT') clear all
Alex
bartekltg <bartekltg@gmail.com> wrote in message <kab4mr$e40$1@node1.news.atman.pl>... > W dniu 2012-12-13 00:21, Alex pisze: > > I am having a problem where I am trying to create a cell array of > > So try cell array:) > > > strings to use in rmfield. I am combining a stem(chart) with a number > > (any number) to create the field I want to remove. For example, if I > > need to remove DeltaT.chart1, deltaT.chart6, deltaT.chart7, then my cell > > array would be: > > chart1 > > chart6 > > chart7 > > > > The problem I have is when I get to chart 10 or more. If I have a > > number greater than 10 I would have the following: > > chart1 > > chart6 > > chart7 > > chart10 > > and I get the error ??? Error using ==> vertcat > > CAT arguments dimensions are not consistent. > > > > Error in ==> remover at 28 > > toremove = [toremove;field] > > > > >> A=['chart1';'chart6';'chart7']; > >> whos A > > Name Size Bytes Class Attributes > > A 3x6 36 char > > > > > I think because I am trying to fit a 7 character wide (chart10) string > > into a 6 character wide cell array. > > This isn't cell array! > > > Is there a way around this or something I can do instead? My code is > > below if it helps. > > > > > > for a = 17%1:22 > > listremove = [] > > toremove = [] > > toremove = {} > > > rmvr = 0; > > Fileone = 'NODIPSinBTBTB_Delta'; > > File = [Fileone,'Comp',int2str(a)] > > load([Fileone,int2str(a),'.mat']) > > data = deltaT; > > stem = 'chart'; > > for L = 1:length(fieldnames(data)) > > field = [stem,int2str(L)]; > > if length(data.(field)) == 0 > > rmvr = 1 > > listremove = [listremove L]; > > end > > end > > if rmvr == 1 > > for g = 1:length(listremove) > > field = [stem,int2str(listremove(g))] > toremove = [toremove;field] > > toremove = { toremove;field } > > > end > > deltaT = rmfield(data, toremove) > > end > > save(File, 'deltaT') > > clear all > > > > end > > >> A={'chart1';'chart6';'chart7'; 'chart10'} > > A = > > 'chart1' > 'chart6' > 'chart7' > 'chart10' > > >> whos A > Name Size Bytes Class Attributes > > A 4x1 498 cell > > > bartekltg > >
|
|
|
|