simple macro coding question
Posted by Cammer, Michael on Jan 23, 2011; 6:14pm
URL: http://imagej.273.s1.nabble.com/simple-macro-coding-question-tp3685928.html
Dear ImageJers,
I've been writing what I thought was an extremely simple function to throw into a bigger set of macros. The goal is to extract numbers from a text window. If I'm making a silly error, I'm sorry to bother you with it, but this just seems so simple and the results unpredictable. I added the d2s() command when the results were first odd; the function works exactly the same with and without the d2s command. Am I overlooking a dumb error in my coding or is there a problem with ImageJ? Any help appreciated.
Sincerely,
Michael
var rowwidth = 2; // How many data points in each row.
var threshold = 20.0; // the minimum size object to count
macro "get numerical data from text files" {
print(get_simple_sum_above_threshold());
} // macro
function get_simple_sum_above_threshold() {
a = getInfo("window.contents");
b = split(a);
sumsizes = 0;
for (i=0; i<b.length; i=i+rowwidth){
if (d2s(b[i+1],3) > threshold) sumsizes = sumsizes + d2s(b[i+1],3);
print (b[i], b[i+1], d2s(b[i+1],3), sumsizes); // for debugging only
} // for i
return (sumsizes);
} // function
In this example I don't understand why line 3 isn't added to the sum and why line 6 is added to the sum. Why is line 7 not added to the sum but line 8 is? Then line 10 is not added.
Raw data:
1 2.981
2 72.202
3 103.335
4 2.981
5 13.579
6 4.968
7 105.322
8 200.045
9 18.216
10 143.079
11 2.981
Result:
1 2.981 2.981 0
2 72.202 72.202 72.202
3 103.335 103.335 72.202
4 2.981 2.981 72.202
5 13.579 13.579 72.202
6 4.968 4.968 77.17
7 105.322 105.322 77.17
8 200.045 200.045 277.215
9 18.216 18.216 277.215
10 143.079 143.079 277.215
11 2.981 2.981 277.215
In the following example, lines 1, 2, 4, 8, 11 and 12 look ok but the rest are messed up.
Another example raw data:
1 340.143
2 3.974
3 5.630
4 10.598
5 3.974
6 4.637
7 7.949
8 26.827
9 164.938
10 11.923
11 22.522
12 2.981
Results:
1 340.143 340.143 340.143
2 3.974 3.974 344.1170
3 5.630 5.630 349.7470
4 10.598 10.598 349.7470
5 3.974 3.974 353.7210
6 4.637 4.637 358.3580
7 7.949 7.949 366.3070
8 26.827 26.827 393.1340
9 164.938 164.938 393.1340
10 11.923 11.923 393.1340
11 22.522 22.522 415.6560
12 2.981 2.981 415.6560
_________________________________________
Michael Cammer, Assistant Research Scientist
Skirball Institute of Biomolecular Medicine
Lab: (212) 263-3208 Cell: (914) 309-3270
------------------------------------------------------------
This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain information that is proprietary, confidential, and exempt from disclosure under applicable law. Any unauthorized review, use, disclosure, or distribution is prohibited. If you have received this email in error please notify the sender by return email and delete the original message. Please note, the recipient should check this email and any attachments for the presence of viruses. The organization accepts no liability for any damage caused by any virus transmitted by this email.
=================================