Sun 30 Jan 2011 09:02:46 PM UTC, comment #5:
It seems that for this cj.mat, you would need the entire SPM. I have tried to reproduce this issue using a smaller subset of commands. During these trials, I came across various unexpected results, which I would like to report separately. Therefore, please mark this bug invalid.
|
Sun 30 Jan 2011 05:29:22 PM UTC, comment #4:
I checked out a copy of matlabbatch and downloaded the file cj.mat. I ran octave in the top-level directory of the matlabbatch source tree. When I try loading cj.mat, I see:
What else do I need?
|
Thu 27 Jan 2011 10:39:08 PM UTC, comment #3:
Hi John,
I'll try to strip the problem down to its core, but in the meantime I'd like to clarify what problem I observe with this dataset:
cj is a collection of cfg_* objects. Looking at the .mat file outside octave, it seems to be correct. The following code should point to a cfg_choice object (and its children)
However, octave returns
On the other hand, if I run
I get the cfg_choice object displayed correctly:
Thus, I assume it is stored correctly, but somehow I can't access it with
I hope this explanation helps a little.
Best,
Volkmar
|
Thu 27 Jan 2011 10:15:08 PM UTC, comment #2:
You say
+vertabim+
Obviously, cj.val{1}.val{1} and tmp.val{1} should return the same data
-verbatim-
but it is not at all obvious to me what should happen with these large structures in which all the complexity of the structure appears to be exposed.
It may be obvious to you, because you are quite familiar with the data structures and understand what is supposed to be happening.
To help us debug these problems, it would help a lot if you were very explicit in stating exactly what things are not as you expect, and also showing us precisely what you do expect.
For example, instead of just saying that the structure is not a proper cfg_* object, tell us precisely which fields are not initialized, and perhaps how that can happen. As far as I know, a class structure can only be initialized by a call to the constructor for the class. So if there are elements that should be class objects but are not, then point that out specifically. If there are elements that are not initialized as you expect, but they are class objects, then I guess that happens because the constructor is called in some way that you are not expecting. If so, perhaps you can identify which path through the constructor must have occurred in order to generate the given structure. I can maybe figure this out for simple examples, but I do not have the time to understand all of matlabbatch in order to debug a problem.
|
Thu 27 Jan 2011 02:44:10 PM UTC, comment #1:
I've uploaded the data to
ftp://uklfr:ftp2ukf@ftp.uniklinik-freiburg.de/glauche/cj.mat
Please forgive the huge amount of data and code involved. I do hope the steps
to reproduce the problem are a hint as to what is going wrong.
|
Thu 27 Jan 2011 12:55:11 PM UTC, original submission:
I've found another problem that looks similar to bug #32182. Unfortunately, the example code below needs the whole matlabbatch (but not SPM). You can get the code via subversion from
The sourceforge source code browser at
doesn't seem to work right now, but you could also get the branches/mlb_1 .tgz from there.
In addition, I'd need to upload/send a .mat file of ~11MB. Do you have a place to put it, as our hospital public server doesn't seem to respond?
After loading the cj.mat, try exploring the .val fields of the object hierarchy in cj. All of them should contain cell arrays with either cfg_* objects or data values.
Obviously, cj.val{1}.val{1} and tmp.val{1} should return the same data - tmp.val{1} is correct in this case. Also, tmp.val{1}.val{1} should be resolved to a cfg_choice object.
|