Matlab load() command error when loading a saved cell from a .mat file

8 ビュー (過去 30 日間)
Stepan Lavrinenko
Stepan Lavrinenko 2016 年 7 月 6 日
コメント済み: Walter Roberson 2016 年 7 月 9 日
Hello, System: Matlab version: R2013a (8.1.0.604), 64-bit on windows 7 My problem: I have created a cell variable idx1 using a rangesearch function:
idx1 = rangesearch(b_values_50,2.1897,0.001);
b_values is a vector of type double. Then I save the cell to a .mat file:
save('idx1_index.mat','idx1') or
save('idx1_index.mat','idx1','-v7.3') or
save('idx1_index.mat','idx1','-v7')
I have attached this file below. Then I try to load it:
load('idx1_index.mat','-mat') or
load('idx1_index.mat') or
load('idx1_index')
And I get this popup:
And I get all these errors (below). Please comment with any solutions. Thanks Exception occurred during event dispatching:
java.lang.ClassCastException: [D cannot be cast to [Z
at com.mathworks.mlwidgets.array.ValuePanel$ROML.matlabEvent(ValuePanel.java:224)
at com.mathworks.jmi.MatlabMCR$AWTReplyEvent.run(MatlabMCR.java:1675)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception occurred during event dispatching:
java.lang.ClassCastException: [D cannot be cast to [Z
at com.mathworks.mlwidgets.array.ValuePanel$ROML.matlabEvent(ValuePanel.java:224)
at com.mathworks.jmi.MatlabMCR$AWTReplyEvent.run(MatlabMCR.java:1675)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception occurred during event dispatching:
java.lang.ClassCastException: [D cannot be cast to [Z
at com.mathworks.mlwidgets.array.ValuePanel$ROML.matlabEvent(ValuePanel.java:224)
at com.mathworks.jmi.MatlabMCR$AWTReplyEvent.run(MatlabMCR.java:1675)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
  2 件のコメント
Walter Roberson
Walter Roberson 2016 年 7 月 9 日
When I test your .mat on R2013a on OS-X El Capitan, or on R2016a on OS-X El Capitan, I have no difficulty.
I will need to check my virtual machines to see if I happen to have MATLAB installed in Windows... I think I might.
Walter Roberson
Walter Roberson 2016 年 7 月 9 日
I installed R2013a on Windows 10 and tested, and had no problem with this file.

サインインしてコメントする。

回答 (1 件)

Image Analyst
Image Analyst 2016 年 7 月 7 日
This works fine for me
% See what's in the file before loading it
whos -file 'idx1_index.mat'
% Shows:
% Name Size Bytes Class Attributes
% idx1 1x1 296 cell
% OK, it's in there, so now load it in to a structure.
storedStructure = load('idx1_index.mat', 'idx1')
% Shows
% storedStructure =
% idx1: {[248 249 251 252 253 261 250 247 262 254 255 256 260 246 259 245 257 258 263 244 243 242 264]}
idx1Cell = storedStructure.idx1;
idx1DoubleArray = cell2mat(idx1Cell)
  3 件のコメント
Stepan Lavrinenko
Stepan Lavrinenko 2016 年 7 月 8 日
Hello, Image Analyst, It seems like everything works fine on the windows machine (i.e. the loading is successful), but I still get the same error nonetheless. Both with your proposed routine and without it (using load('filename')). I am not sure if that has something to do with the machine I am working on or Matlab software version I am using. Thanks
Image Analyst
Image Analyst 2016 年 7 月 9 日
rangesearch takes 2 arrays as the first two arguments. That's not what you're passing in (I don't think) when you do
idx1 = rangesearch(b_values_50, 2.1897, 0.001);
The first array is okay, b_values_50, but for the second argument you have a number 2.1897 instead of an array with the same number of rows as b_values_50. Why is that?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by